Cod sursa(job #59700)

Utilizator vladbBogolin Vlad vladb Data 10 mai 2007 10:17:07
Problema GFact Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<fstream.h>
#include<math.h>

int p,q,a,i,b[100],e,max;

int prim(int);

int main()
{  ifstream fin("gfact.in");
   ofstream fout("gfact.out");
   fin>>p>>q;
   a=(int)pow(p,q);
   if(prim(a)) fout<<a;
   else {
			for(i=1;i<=a/2;i++)
				if(a%i==0) if(prim(i)) b[++e]=i;
			max=0;
			for(i=1;i<=e;i++)
				if(max<b[i]) max=b[i];
			fout<<max;
		}
   fin.close();
   fout.close();
   return 0;
}

int prim(int n)
{  if(n==1) return 0;
   if(n==2||n==3) return 1;
   if(n%2==0) return 0;
   for(int k=3;k*k<n;k+=2)
		if(n%k==0) return 0;
   return 1;
}