Cod sursa(job #247030)
Utilizator | Data | 21 ianuarie 2009 23:35:23 | |
---|---|---|---|
Problema | GFact | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.51 kb |
#include<stdio.h>
long long p,q,A=1;
void ridicare_p_la_q()
{
while(q)
{
if(q%2)
A*=p;
p=p*p;
q/=2;
}
}
int g_fact(int i)
{
long long fact=1;
for(int j=1;j<=i;++j)
fact*=j;
return fact;
}
int main()
{
freopen("gfact.in","r",stdin);
freopen("gfact.out","w",stdout);
scanf("%lld%lld",&p,&q);
ridicare_p_la_q();
for(int i=2;i<=A;++i)
if(g_fact(i)%A==0 && g_fact!=0)
{
printf("%d",i);
break;
}
return 0;
}