/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 2ms 532.0 KiB
#2 Accepted 2ms 584.0 KiB
#3 Accepted 4ms 532.0 KiB
#4 Accepted 4ms 532.0 KiB
#5 Accepted 34ms 652.0 KiB
#6 Accepted 31ms 532.0 KiB
#7 Accepted 4ms 532.0 KiB
#8 Accepted 5ms 532.0 KiB
#9 Accepted 162ms 668.0 KiB
#10 Accepted 354ms 748.0 KiB
#11 Accepted 71ms 648.0 KiB
#12 Accepted 12ms 532.0 KiB

Code

/*
 *Copyright (c) Swadheen Islam Robi (SIR01)
 *Created on Tue Jan 06 2026 9:12:55 PM
 */
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
#define pie 2 * (acos(0.0))
#define yes cout << "YES\n"
#define no cout << "NO\n"
#define pb push_back
#define endl "\n"
#define lcm(a, b) (a * b) / (__gcd<ll>(a, b))
#define mod 1000000007
#define srt(v) sort(v.begin(), v.end())
#define rsrt(v) sort(v.rbegin(), v.rend())
#define print(vec)        \
    for (auto e : vec)    \
        cout << e << " "; \
    cout << endl
#define ALLAHU_AKBAR             \
    ios::sync_with_stdio(false); \
    cin.tie(nullptr);

const ll mx = 32000;
vector<ll> primes;

void sieve()
{
    vector<bool> prime(mx, true);
    prime[0] = prime[1] = false;
    for (ll i = 2; i * i < mx; i++)
    {
        if (prime[i])
        {
            for (ll j = i * i; j < mx; j += i)
                prime[j] = false;
        }
    }
    for (ll i = 2; i < mx; i++)
    {
        if (prime[i])
            primes.pb(i);
    }
}

void sir()
{
    ll x, k;
    cin >> x >> k;

    vector<ll> pf;
    ll temp = x;

    for (ll p : primes)
    {
        if (p * p > temp)
            break;
        while (temp % p == 0)
        {
            pf.pb(p);
            temp /= p;
        }
    }
    if (temp > 1)
        pf.pb(temp);

    srt(pf);
    ll spd = pf[0];

    while (k > 0)
    {
        if (pf.back() == spd)
        {
            if (k % 2 != 0)
            {
                x *= spd; // roy
            }
            break;
        }

        x *= spd;

        pf.insert(pf.begin(), spd);
        k--;

        if (k == 0)
            break;

        ll lpd = pf.back();
        x /= lpd;
        pf.pop_back();
        k--;
    }

    cout << x << endl;
}

int main()
{
    ALLAHU_AKBAR
    sieve();
    ll t;
    cin >> t;
    while (t--)
        sir();
    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 16:12:17
Judged At
2026-01-06 16:12:17
Judged By
Score
100
Total Time
354ms
Peak Memory
748.0 KiB