Pagini recente » Cod sursa (job #114208) | Cod sursa (job #2629693) | Cod sursa (job #2850410) | Cod sursa (job #468516) | Cod sursa (job #1126298)
#include <fstream>
using namespace std;
ifstream fin ("gfact.in");
ofstream fout ("gfact.out");
long long p,q,i,putere,ok,x,st,dr,s,sol,mij;
int main () {
fin>>p>>q;
for (i=2;i*i<=p;i++) {
putere=ok=0;
while (p%i==0) {
ok=1;
putere++;
p/=i;
}
if ( ok==1 ) {
st=1;dr=40000000000001;
while (st<=dr) {
s=0;
mij=(st+dr)/2;
x=i;
while (mij/x!=0) {
s+=mij/x;
x*=i;
}
if (s<putere*q)
st=mij+1;
else
dr=mij-1;
}
if (sol<st)
sol=st;
}
}
if (p!=1) {
st=1;dr=40000000000001;
while (st<=dr) {
s=0;
mij=(st+dr)/2;
x=i;
while (mij/x!=0) {
s+=mij/x;
x*=i;
}
if (s<q)
st=mij+1;
else
dr=mij-1;
}
if (sol<st)
sol=st;
}
fout<<sol<<"\n";
return 0;
}