Cod sursa(job #2354198)
| Utilizator | Data | 24 februarie 2019 23:48:10 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.44 kb |
#include <iostream>
#define MOD 1999999973
using namespace std;
int solve(int n, int p)
{
long long ans = 1;
for(; p; p >>= 1) {
if((p & 1) == 1) ans = (1LL * ans * n) % MOD;
n = (1LL * n * n) % MOD;
}
return ans % MOD;
}
int main()
{
freopen("lgput.in", "r", stdin);
freopen("lgput.out", "w", stdout);
int n, p;
scanf("%d%d", &n, &p);
printf("%d", solve(n, p));
return 0;
}
