Cod sursa(job #317437)
| Utilizator | Data | 23 mai 2009 16:52:56 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.45 kb |
//ridicare la putere logaritmic
#include<stdio.h>
#define MOD 1999999973
FILE *f,*g;
unsigned long a,b,r=1;
int calc ( int x, int y){
if ( y==1 ){r*=x%MOD;return 1;}
if ( y&1 ){r*=(calc(x,y/2)*calc(x,y/2)*calc(x,1));}
else {r*=calc(x,y/2)*calc(x,y/2);}
return 1;
}
int main(){
f = fopen("lgput.in","rt");
g = fopen("lgput.out","wt");
fscanf(f,"%ld%ld",&a,&b);
calc(a,b);
fprintf(g,"%ld",r);
return 0;
}
