Cod sursa(job #464905)
| Utilizator | Data | 22 iunie 2010 14:59:29 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.43 kb |
#include <stdio.h>
#define n 1999999973
#define i64 long long
using namespace std;
long long ExponModul(long long a,int b)
{long long d=1;
for(;b;b>>=1)
{if(b&1) d=(d*a)%n;
a=(a*a)%n;
}
return d;
}
int main(void)
{FILE *fin=fopen("lgput.in","r");
FILE *fout=fopen("lgput.out","w");
int a,b;
fscanf(fin,"%d%d",&a,&b);
fprintf(fout,"%lld",ExponModul(a,b));
fclose(fin); fclose(fout);
return 0;
}
