Cod sursa(job #474584)
| Utilizator | Data | 4 august 2010 11:32:38 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | c | Status | done |
| Runda | Arhiva educationala | Marime | 0.43 kb |
#include<stdio.h>
const int r = 1999999973;
int putere(int n,int p){
if(p == 1)
return n;
if(p % 2 == 0)
return putere((long long) n * n % r,p / 2);
return (long long) n * putere((long long) n * n % r,p / 2) % r;
}
int main(){
FILE *f,*g;
int n,p;
f = fopen("lgput.in","r");
g = fopen("lgput.out","w");
fscanf(f,"%d",&n);
fscanf(f,"%d",&p);
int r = putere(n,p);
fprintf(g,"%d\n",r);
return 0;
}
