Pagini recente » Cod sursa (job #1223497) | Cod sursa (job #716336) | Cod sursa (job #539057) | Cod sursa (job #1989061) | Cod sursa (job #2187137)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("gfact.in");
ofstream fout("gfact.out");
int q,p;
int maxd,put;
unsigned long long s;
int main()
{
int i,d,nr;
unsigned long long n,dr,mij,st,t,c;
fin>>p>>q;
d=2;
c=p;
while(c!=1)
{
t=0;
while(c%d==0)
{
t++;
c=c/d;
}
if(t>0)
{
maxd=d;
put=t;
}
if(d*d<c)
d++;
else
d=c;
}
n=1;
put=put*q;
for(i=1;i<=put;i++)
n=n*maxd;
st=1;
dr=n;
s=n;
while(st<=dr)
{
mij=(st+dr)/2;
nr=0;
t=1;
for(i=1;i<=put;i++)
{
t=t*maxd;
nr+=mij/t;
}
if(nr<q)
st=mij+1;
else
{
if(mij<s)
s=mij;
dr=mij-1;
}
}
fout<<s;
return 0;
}