Cod sursa(job #173318)
Utilizator | Stirbu Cosmin CosminStirbu | Data | 7 aprilie 2008 17:16:28 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.41 kb |
#include<stdio.h>
long n,p;
const long m=1999999973;
long power(long x, long y)
{ if (y==0) return 1;
else if (y%2==0) return power(x*x%m,y/2);
else return (x%m)*power(x*x%m,(y-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; }