Cod sursa(job #178996)
Utilizator | Data | 15 aprilie 2008 14:21:01 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.36 kb |
#include<stdio.h>
FILE *f=fopen("lgput.in","r");
FILE *g=fopen("lgput.out","w");
long long x,n,rez;
long long solve(long long x,long long n)
{
if(n==0)
return 1;
else if(n%2)
return x*solve(x*x,(n-1)/2);
else return solve(x*x,n/2);
}
int main()
{
fscanf(f,"%lld%lld",&x,&n);
rez=solve(x,n);
fprintf(g,"%lld",rez);
return 0;
}