Cod sursa(job #433998)

Utilizator sorecau_catalinSorecau Catalin sorecau_catalin Data 4 aprilie 2010 21:28:56
Problema GFact Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <fstream>
using namespace std;

unsigned long long Factorial ( unsigned long long num );

ifstream fin("gfact.in");
ofstream fout("gfact.out");
unsigned long long n, p;

int main()
{
	long long a = 1;
	fin >> n >> p;
	while ( p )
	{
		if( p % 2 )
		a =  a * n;
		n = n*n;
		p /= 2;
	}
	int nr;
	int i;
	for (  i = 1; i <= a; i++)
	{	
		if ( Factorial(i) % a == 0 )
		{	
			nr = i;
			break;
		}
	}
	fout << nr;
}

unsigned long long Factorial ( unsigned long long num)
{
	if (num==1)
		return 1;
	return Factorial(num-1)*num; // recursive call
}