Pagini recente » Cod sursa (job #3121302) | Cod sursa (job #696335) | Cod sursa (job #793682) | Cod sursa (job #701771) | Cod sursa (job #555832)
Cod sursa(job #555832)
#include <cstdio>
#include <cstring>
#define file_in "gfact.in"
#define file_out "gfact.out"
int P,Q,e,d,v[1100000],i,p,pp,vv[1010000],max;
int ok(){
for (int j=2;j<=100000;++j)
if (v[j]>vv[j])
return 0;
return 1;
}
int main(){
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%d %d", &P, &Q);
//if (Q==1){
for (d=2;d*d<=P;++d){
e=0;
while(P%d==0){
++e;
P/=d;
}
if (e)
v[d]=e;
}
if (P>1)
v[P]=1;
max=d;
for (i=2;i<=100000;++i)
v[i]*=Q;
i=2;
while(!ok()){
P=i;
for (d=2;d*d<=P;++d){
e=0;
while(P%d==0){
++e;
P/=d;
}
if (e)
vv[d]+=e;
}
if (P>1)
vv[P]+=1;
i++;
}
printf("%d\n", i-1);
//}
return 0;
}