Cod sursa(job #342211)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 20 august 2009 21:15:19
Problema GFact Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <cstdio>

#define file_in "gfact.in"
#define file_out "gfact.out"

int p,q;

inline long long power(long long a, long long b)
{
    long long x;
    if (b==1)
         return a;
    else
    if (b%2==0)
    {
        x=power(a,b/2);
        return (x*x);
    }
    else
    {
       x=power(a,b/2);
       return ((x*x)*a);
    }
}

inline int solve()
{
	long long rez;
	int nr=1;
    int i;

	
	while(1)
	{
		rez=1;
		nr++;
		for (i=2;i<=nr;++i)
			 rez*=i;
        if (rez%p==0)
			break;	
	}
	
	return nr;
}


int main()
{

	freopen(file_in,"r",stdin);
	freopen(file_out,"w",stdout);

	scanf("%d %d", &p,&q);

	if (q==1)
	{
		printf("%d", solve());
	}
	else
	{
		p=power(p,q);
		printf("%d", solve());
	}
	//}

	fclose(stdin);
	fclose(stdout);

	return 0;
}