Pagini recente » Cod sursa (job #1308773) | Cod sursa (job #431430) | Cod sursa (job #2428589) | Cod sursa (job #2934718) | Cod sursa (job #1118630)
# include <fstream>
# include <cmath>
using namespace std;
ifstream f("gfact.in");
ofstream g("gfact.out");
long long p,k,Max,sol,r,q;
long long cauta_bin(long long k, long long r)
{
long long ci=1,cs=1000000000000,nr=0,IMP=0,mij=0,sol=0;
while(ci<=cs)
{
mij=(ci+cs)/2;
nr=0; IMP=k;
while(mij/IMP>0)
{
nr+=(mij/IMP);
IMP*=k;
}
if (nr>=r)
{
cs=mij-1;
sol=mij;
}
else ci=mij+1;
}
return sol;
}
int main()
{
f>>p>>q;
for(k=2; k*k<=p; ++k)
{
r=0;
while(p%k==0) {++r; p/=k;}
if(r!=0)
{
sol=cauta_bin(k,r) ;
if (sol>Max) Max=sol;
}
}
if(p>1)
{
k=p;
long long r=q;
sol=cauta_bin(k,r);
if (sol>Max) Max=sol;
}
g<<sol<<'\n';
return 0;
}