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