Cod sursa(job #2153087)
Utilizator | Enache Adelina ade_tomi | Data | 5 martie 2018 22:37:52 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.55 kb |
#include <iostream>
#include <fstream>
using namespace std;
const long long MOD = 1999999973;
long long lgpow(long long base, long long exp) {
if (exp == 1) {
return base;
}
if (exp % 2 == 0) {
return lgpow(((long long) (base * base)) % MOD, exp / 2);
}
return (long long) (base * lgpow(((long long) (base * base)) % MOD, exp / 2)) % MOD;
}
int main() {
long long base, exp;
ifstream cin ("lgput.in");
ofstream cout ("lgput.out");
cin >> base >> exp;
cout << lgpow(base, exp);
return 0;
}