Cod sursa(job #59670)

Utilizator deltaDumitrache Mircea delta Data 10 mai 2007 08:37:07
Problema GFact Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream.h>


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

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


	fin >> p >> q;

	a = p;
	unsigned long int 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;
			}
		}
	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;
}