Cod sursa(job #583309)
| Utilizator | Data | 19 aprilie 2011 16:52:42 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | c | Status | done |
| Runda | Arhiva educationala | Marime | 0.49 kb |
#include <stdio.h>
#define MOD 1999999973
#define IN "lgput.in"
#define OUT "lgput.out"
static long long n, e;
static long long lgput(long long);
int main(void) {
(void) freopen(IN, "r", stdin);
(void) freopen(OUT, "w", stdout);
(void) scanf("%lld %lld", &n, &e);
printf("%lld\n", lgput(e));
return 0;
}
long long lgput(long long p) {
long long x;
if(!p) return 1;
x = lgput(p / 2);
x = (x * x) % MOD;
if(p % 2) x = (x * n) % MOD;
return x;
}
