Cod sursa(job #2721364)
Utilizator | Data | 11 martie 2021 18:55:59 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.5 kb |
#include <bits/stdc++.h>
#define MOD 1999999973
using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
int lgput(int base, int exp) {
if (exp == 0) {
return 1;
}
int result = lgput(base, exp / 2);
result = (1LL * result * result) % MOD;
if (exp % 2 == 1) {
result = (1LL * result * base) % MOD;
}
return result;
}
int main() {
int N, P;
fin >> N >> P;
fout << lgput(N, P);
return 0;
}