Cod sursa(job #555832)

Utilizator andrei.dAndrei Diaconeasa andrei.d Data 15 martie 2011 19:55:59
Problema GFact Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#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;
	
}