Pagini recente » Cod sursa (job #1544345) | Cod sursa (job #1856874) | Cod sursa (job #2222537) | Cod sursa (job #1418664) | Cod sursa (job #1701554)
# include <fstream>
# define INF 1000000000000000000LL
using namespace std;
ifstream fin("gfact.in");
ofstream fout("gfact.out");
long long mij,st,dr,r;
int d[2][7000000],a,b,s,i,k,nr,ok,ri;
int main () {
fin>>a>>b;
r=a;
i=2;
while(i*i<=a||r!=1){
nr=0;
while(r%i==0){
nr++;
r/=i;
}
if(nr){
d[1][++k]=i;
d[2][k]=nr*b;
}
i++;
}
if(r!=1){
d[1][++k]=r;
d[2][k]=1;
}
st=1;
dr=INF;
while(st<=dr){
mij=(st+dr)/2;
ok=1;
for(i=1;i<=k;i++){
r=d[1][i];
ri=d[1][i];
s=0;
while(s<d[2][i]&&r<=mij){
s+=mij/r;
r*=ri;
}
if(s<d[2][i])
ok=0;
}
if(ok)
dr=mij-1;
else
st=mij+1;
}
fout<<st<<"\n";
return 0;
}