Cod sursa(job #2681985)

Utilizator PredescuSebastianIonPredescu Sebastian Ion PredescuSebastianIon Data 7 decembrie 2020 16:00:41
Problema GFact Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <bits/stdc++.h>
#define mod 1000000007

using namespace std;
ifstream f("ga.in");
ofstream g("ga.out");
const int nmax=105;
int p,q,k,a[nmax],v[nmax];
long long sol;
int main()
{
    f>>p>>q;
    if(p%2==0)a[++k]=2;
    while(p%2==0)
    {
        v[k]++;
        p/=2;
    }
    for(int i=3; i*i<=p; i+=2)
    {
        if(p%i!=0)continue;
        a[++k]=i;
        while(p%i==0)
        {
            v[k]++;
            p/=i;
        }
    }
    if(p>2)
    {
        a[++k]=p;
        v[k]=1;
    }
    for(int i=1; i<=k; i++)
    {
        v[i]=v[i]*q;
    }
    for(int i=1; i<=k; i++)
    {
        long long x=0;
        while(v[i]>0)
        {
            x+=a[i];
            long long y=x;
            while(y%a[i]==0)
            {
                v[i]--;
                y/=a[i];
            }
        }
        sol=max(sol,x);
    }
    g<<sol<<'\n';
    return 0;
}