Cod sursa(job #247037)
Utilizator | Mandu Dragos drag0s93 | Data | 22 ianuarie 2009 00:01:21 |
---|---|---|---|
Problema | GFact | Scor | 15 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.58 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;
}
}
long long g_fact(int i)
{
long long fact=1;
for(int j=2;j<=i;++j)
fact*=j;
return fact;
}
int main()
{
long long gfact=0;
freopen("gfact.in","r",stdin);
freopen("gfact.out","w",stdout);
scanf("%lld%lld",&p,&q);
int cp=p,cq=q;
ridicare_p_la_q();
for(int i=2;i<=cq*cp;++i)
{
gfact=g_fact(i);
if(gfact%A==0 && gfact>0)
{
printf("%d",i);
break;
}
}
return 0;
}