Cod sursa(job #334513)
| Utilizator | Data | 27 iulie 2009 09:34:46 | |
|---|---|---|---|
| Problema | GFact | Scor | 20 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.72 kb |
#include<stdio.h>
using namespace std;
int x,n;
int put(int x, int n)
{
long long r;
if(n==0) return 1;
else if(n%2==0)
{
r=put(x,n/2);
return (r*r);
}
else
{
r=put(x,n-1);
return (r*x);
}
}
int main()
{
long long a, fact=1,ok=0,i;
FILE *f=fopen("gfact.in","r"), *g=fopen("gfact.out","w");
fscanf(f, "%d%d", &x, &n);
a=(long long)put(x,n);
i=1;
while(ok==0)
{
fact*=++i;
if(fact%a==0)
ok=1;
}
fprintf(g,"%lld\n",i);
fclose(f);
fclose(g);
return 0;
} 