Cod sursa(job #796798)
Utilizator | Alexandru Petrescu alexpetrescu | Data | 12 octombrie 2012 16:21:51 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.39 kb |
#include <stdio.h>
#define R 1999999973
long long lgput(long long a, long long n){
if(n==1)
return a;
if(n%2==0)return lgput(a*a%R,n/2);
else return a*lgput(a*a%R,n/2)%R;
}
int main(){
long long a,n;
FILE *fin,*fout;
fin=fopen("lgput.in","r");
fout=fopen("lgput.out","w");
fscanf(fin,"%lld%lld",&a,&n);
fprintf(fout,"%lld",lgput(a,n));
return 0;
}