Pagini recente » Cod sursa (job #2429107) | Cod sursa (job #652657) | Cod sursa (job #3245262) | Cod sursa (job #658276) | Cod sursa (job #1593212)
#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(long long x,long long put)
{
long long st=0, dr=1LL*x*put;
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;
long long put=0;
while(p%i==0)
{
p=p/i;
++put;
}
put=put*q;
long long act=caut(i,put);
if(act>ans)ans=act;
i++;
}
out<<ans;
return 0;
}