Cod sursa(job #2231694)
| Utilizator | Data | 15 august 2018 16:59:29 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 0 |
| Compilator | c | Status | done |
| Runda | Arhiva educationala | Marime | 0.61 kb |
#include <stdio.h>
#define mod 1999999973
long long log_pow(long long n, long long p) {
printf("%lld %lld\n", n, p);
if(p == 1)
return n;
if(p == 0)
return 1;
long long aux;
aux = log_pow(n, p / 2) % mod;
if(p % 2 == 0)
return (aux * aux) % mod;
else
return (aux * 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;
}
