Pagini recente » Cod sursa (job #2312793) | Cod sursa (job #3233811) | Cod sursa (job #2670103) | Cod sursa (job #2341136) | Cod sursa (job #806388)
Cod sursa(job #806388)
#include<fstream>
#define lli long long int
using namespace std;
ifstream f("gfact.in");
ofstream g("gfact.out");
lli p,q,i,j;
lli t[15],b[15];
lli sol1,sol,l,r,m,mm,pp;
lli gf(lli tt,lli bb)
{
l=1;
r=bb*tt;
while(r>l+1)
{
m=(l+r)/2;
mm=m;
pp=0;
while(mm)
{
pp+=mm/tt;
mm/=tt;
}
if(pp>=bb)
r=m;
else
l=m;
}
return r;
}
int main()
{
f>>p>>q;
for(i=2;;i++)
{
if(i*i>p)break;
if(p%i==0)
{
j++;t[j]=i;
while(p%i==0){ b[j]++;p/=i;}
}
}
if(p>1)
{
j++;
t[j]=p;
b[j]=1;
}
for(i=1;i<=j;i++)
b[i]*=q;
for(i=1;i<=j;i++)
{
sol1=gf(t[i],b[i]);
sol=(sol>sol1)?sol:sol1;
}
g<<sol;
return 0;
}