Cod sursa(job #59709)

Utilizator deltaDumitrache Mircea delta Data 10 mai 2007 10:44:23
Problema GFact Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream.h>
#include <math.h>


unsigned long int p, q, a, produs;
int Prim(unsigned long int);

int main()
{
	ifstream fin("gfact.in");
	ofstream fout("gfact.out");


	fin >> p >> q;

	if (q == 1)
	{
		a = p;
		produs = 1;

		if (Prim(a) == 0)
			fout << a;

		else
			for (int i = 2; i <= a; i++)
			{
				produs *= i;
				if (produs %a == 0)
				{
					fout << i;
					break;
				}
			}
	}

	else
	{	produs = 1;
		a =(int)pow(p, q);
			for (int j = 2; j <= a; j++)
			{
				produs *= j;
				if (produs %a == 0)
				{
					fout << j;
					break;
				}
			}
	}



	fin.close();
	fout.close();
	return 0;
}

int Prim(unsigned long int x)
{
	if (x == 1) return 0;
	if (x == 2 || x == 3) return 0;
	if (x %2 == 0) return 1;

	for (unsigned long int ii = 3; ii * ii <= x; ii +=2)
		if (x %ii == 0)
			return 1;
	return 0;
}