Pagini recente » Cod sursa (job #2798545) | Cod sursa (job #2146948) | Cod sursa (job #1796474) | Cod sursa (job #95936) | Cod sursa (job #1702216)
# include <fstream>
# define INF 1000000000000000000LL
# define DIM 10000000
using namespace std;
ifstream fin("gfact.in");
ofstream fout("gfact.out");
long long d[2][DIM/2],x,y,z,i,nr,k,ok,st,dr,mij,nr1;
int main () {
fin>>x>>y;
z=x;
i=2;
while(z!=1&&i*i<=x){
nr=0;
while(z%i==0){
nr++;
z/=i;
}
if(nr!=0){
d[0][++k]=i;
d[1][k]=nr*y;
}
i++;
}
if(z!=1){
d[0][++k]=z;
d[1][k]=y;
}
st=1;
dr=INF;
while(st<=dr){
mij=(st+dr)/2;
ok=1;
for(i=1;i<=k;i++){
z=d[0][i];
nr1=0;
while(z<mij&&nr1<d[1][i]){
nr1+=mij/z;
z*=d[0][i];
}
if(nr1<d[1][i])
ok=0;
}
if(ok)
dr=mij-1;
else
st=mij+1;
}
fout<<st<<"\n";
return 0;
}