Cod sursa(job #2271598)
Utilizator | Data | 28 octombrie 2018 22:22:27 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.52 kb |
#include <stdio.h>
#define mod 1999999973
using namespace std;
long long int lgput(long long int a, long long int x) {
if (x == 0)
return 1;
if (x == 1)
return a % mod;
if (x % 2 == 1)
return a * lgput(a, x - 1) % mod;
long long int y = lgput(a, x / 2) % mod;
return y * y % mod;
}
int main()
{
int n, p;
freopen("lgput.in", "r", stdin);
freopen("lgput.out", "w", stdout);
scanf("%d %d", &n, &p);
printf("%lld", lgput(n, p));
return 0;
}