Cod sursa(job #158217)
| Utilizator | Data | 13 martie 2008 15:33:47 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | c | Status | done |
| Runda | Arhiva educationala | Marime | 0.36 kb |
#include <stdio.h>
long power(unsigned long x,unsigned long p){
if(p==0) return 1;
if(p%2==1) return x*power(x*x,(p-1)/2)%1999999973;
return power(x*x,p/2)%1999999973;
}
int main(){
FILE *f=fopen("lgput.in","r");
unsigned long n,p;
fscanf(f,"%ld",&n);
fscanf(f,"%ld",&p);
FILE *g=fopen("lgput.out","w");
long x=power(n,p);
fprintf(g,"%ld\n",x);
fclose(g);
return 0;
}
