Cod sursa(job #173317)
Utilizator | Stirbu Cosmin CosminStirbu | Data | 7 aprilie 2008 17:14:30 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.4 kb |
#include<stdio.h>
long n,p;
const long m=1999999973;
long power(int x, int n)
{ if (n==0) return 1;
else if (n%2==0) return power(x*x%m,n/2);
else return x%m*power(x*x%m,(n-1)/2);
}
int main ()
{ FILE*f=fopen("lgput.in","r");
FILE*g=fopen("lgput.out","w");
fscanf(f,"%ld%ld",&n,&p);
fprintf(g,"%ld",power(n,p));
fcloseall();
return 0; }