Pagini recente » Cod sursa (job #767855) | Cod sursa (job #794486) | Cod sursa (job #1885902) | Cod sursa (job #272516) | Cod sursa (job #555830)
Cod sursa(job #555830)
#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<=max;++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<=max;++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;
}