Pagini recente » Cod sursa (job #750093) | Cod sursa (job #984061) | Cod sursa (job #761117) | Cod sursa (job #2629203) | Cod sursa (job #1701553)
# include <fstream>
# define INF 1000000000000000000LL
using namespace std;
ifstream fin("gfact.in");
ofstream fout("gfact.out");
long long mij,st,dr,a,b,s,r,i,k,nr,ok;
int d[2][7000000];
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++;
}
st=1;
dr=INF;
while(st<=dr){
mij=(st+dr)/2;
ok=1;
for(i=1;i<=k;i++){
r=d[1][i];
s=0;
while(s<d[2][i]&&r<=mij){
s+=mij/r;
r*=a;
}
if(s<d[2][i])
ok=0;
}
if(ok)
dr=mij-1;
else
st=mij+1;
}
fout<<st<<"\n";
return 0;
}