Cod sursa(job #66720)

Utilizator RobytzzaIonescu Robert Marius Robytzza Data 20 iunie 2007 20:05:12
Problema GFact Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<fstream.h>
long a[100000],b[100000],P,Q;
void factor(int P,long a[100000]){
while (P%2==0){
  a[2]++;
  P/=2;}
for (long d=3;d<=P/d;d+=2)
   while (P%d==0){
	a[d]++;
	P/=d;}
  if (P!=1)
     a[P]++;
}
int comparare(int N){
for (long i=0;i<=N;i++)
   if (a[i]!=0&&b[i]%a[i]!=0)
      return 0;
   else
     if (b[i]==0&&a[i]>0)
	return 0;
return 1;
}
void imn(long P){
  for (long i=0;i<=P;i++)
	a[i]*=Q;
}
int main(){
ifstream fin("gfact.in");
fin>>P>>Q;
fin.close();
factor(P,a);
imn(P);
ofstream fout("gfact.out");
for (int i=2;i<31000;i++){
factor(i,b);
if (comparare(P)==1)     {
   fout<<i;
  break; }    }
fout<<"\n";
fout.close();
return 0;
}