Pagini recente » Cod sursa (job #613214) | Cod sursa (job #2364436) | Cod sursa (job #46933) | Cod sursa (job #1734526) | Cod sursa (job #1593204)
#include <bits/stdc++.h>
using namespace std;
ifstream in("gfact.in");
ofstream out("gfact.out");
long long p,q,a,b,i=2,ans;
long long caut(int x, int put)
{
long long st=1, dr=p*q;
while(st<=dr)
{
long long med=(st+dr)/2;
long long px=x,nf=0;
while(px<=med)
{
nf=nf+med/px;
px=px*x;
}
if(nf<put)st=med+1;
else dr=med-1;
}
return st;
}
int main()
{
in>>p>>q;
while(p>1)
{ if(i*i>p)i=p;
int put=0;
while(p%i==0)
{
p=p/i;
++put;
}
put=put*q;
long long act=caut(i,put);
ans=max(ans,act);
i++;
}
out<<ans;
return 0;
}