Cod sursa(job #2231699)
| Utilizator | Data | 15 august 2018 17:05:26 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | c | Status | done |
| Runda | Arhiva educationala | Marime | 0.54 kb |
#include <stdio.h>
#define mod 1999999973
long long log_pow(long long n, long long p) {
if(p == 1)
return n;
if(p == 0)
return 1;
if(p % 2 == 0)
return log_pow(n * n, p / 2) % mod;
else
return n * log_pow (n * n, (p - 1) / 2) % mod;
return 0;
}
int main(int argc, const char * argv[]) {
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
long long n,p;
scanf("%lld %lld", &n ,&p);
printf("%lld",log_pow(n,p));
return 0;
}
