/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Accepted 1ms 496.0 KiB
#3 Accepted 4ms 532.0 KiB
#4 Accepted 4ms 532.0 KiB
#5 Accepted 67ms 584.0 KiB
#6 Accepted 67ms 568.0 KiB
#7 Accepted 3ms 536.0 KiB
#8 Accepted 4ms 532.0 KiB
#9 Accepted 391ms 608.0 KiB
#10 Accepted 983ms 832.0 KiB
#11 Accepted 165ms 600.0 KiB
#12 Accepted 14ms 576.0 KiB

Code

#include <iostream>
#include <vector>

using namespace std;

void solve() {
    long long n, k;
    cin >> n >> k;

    vector<long long> divs;
    long long tmp = n;

    if (tmp % 2 < 1) {
        divs.push_back(2);
        while (tmp % 2 < 1) {
            tmp /= 2;
        }
    }
    if (tmp % 3 < 1) {
        divs.push_back(3);
        while (tmp % 3 < 1) {
            tmp /= 3;
        }
    }

    long long i = 5;
    while (i * i <= tmp) {
        if (tmp % i < 1) {
            divs.push_back(i);
            while (tmp % i < 1) {
                tmp /= i;
            }
        }
        if (tmp % (i + 2) < 1) {
            divs.push_back(i + 2);
            while (tmp % (i + 2) < 1) {
                tmp /= (i + 2);
            }
        }
        i += 6;
    }
    if (tmp > 1) {
        divs.push_back(tmp);
    }

    long long x = 0;
    while (divs.size() > 1 && x < k) {
        if (x % 2 < 1) {
            n *= divs[0];
        } else {
            while (n % divs.back()) {
                divs.pop_back();
            }
            n /= divs.back();
        }
        x++;
    }

    long long rem = k - x;
    if (rem && rem % 2) {
        if (!divs.empty() && n == divs[0]) {
            cout << n * n << "\n";
        } else {
            if (x % 2 < 1) {
                cout << n * divs[0] << "\n";
            } else {
                cout << n / divs[0] << "\n";
            }
        }
    } else {
        cout << n << "\n";
    }
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int t;
    if (cin >> t) {
        while (t--) {
            solve();
        }
    }
    return 0;
}

Information

Submit By
Type
Submission
Problem
P1194 D. Roy and Prime Game
Contest
Happy New Year 2026
Language
C++17 (G++ 13.2.0)
Submit At
2026-01-06 17:11:45
Judged At
2026-01-06 17:11:45
Judged By
Score
100
Total Time
983ms
Peak Memory
832.0 KiB