Pagini recente » Cod sursa (job #1293406) | Cod sursa (job #1619295) | Cod sursa (job #2867348) | Cod sursa (job #917883) | Cod sursa (job #1119044)
#include<fstream>
using namespace std;
long long i, n, k, v[100000003], m[100000003], nr, p, u, mij, ok, xer, kij;
ifstream fin("gfact.in");
ofstream fout("gfact.out");
int main(){
fin>>n>>k;
for(i=2; i*i<=n; i++){
if(n%i==0){
v[++nr]=i;
while(n%i==0){
m[i]+=k;
n/=i;
}
}
}
if(n!=1){
v[++nr]=n;
m[n]=k;
}
p=1; u=40000000000001;
while(p<=u){
ok=0;
mij=(p+u)/2;
for(i=1; i<=nr; i++){
xer=0; kij=v[i];
while(mij/kij!=0){
xer+=mij/kij;
kij*=v[i];
}
if(xer<m[v[i]]){
ok=1;
break;
}
}
if(ok==1)
p=mij+1;
else
u=mij-1;
}
fout<<p;
return 0;
}