Cod sursa(job #2278173)
Utilizator | Temes George Semetg | Data | 7 noiembrie 2018 13:38:51 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.48 kb |
#include <fstream>
using namespace std;
#define MOD 1999999973
ifstream cin("lgput.in");
ofstream cout("lgput.out");
inline int64_t pow_log(int64_t n, int64_t p) {
if (p == 1)
return n % MOD;
if (p % 2 == 0)
return pow_log(((n % MOD) * (n % MOD)) % MOD, p / 2);
else
return ((n % MOD) * (pow_log(((n % MOD) * (n % MOD)) % MOD, p / 2) % MOD) % MOD);
}
int main() {
int64_t n ,p;
cin >> n >> p;
cout << pow_log(n, p);
}