Cod sursa(job #2231684)
| Utilizator | Data | 15 august 2018 16:43:03 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | c | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 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;
long long aux;
aux = log_pow(n, p/2) % mod;
if(n % 2 == 0)
return (aux * aux) % mod;
else
return (aux * n) % 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;
}
