Cod sursa(job #2079176)

Utilizator iordache.bogdanIordache Ioan-Bogdan iordache.bogdan Data 30 noiembrie 2017 18:18:30
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <bits/stdc++.h>
using namespace std;

namespace lgput {
    constexpr int MOD = 1999999973;
}

int64_t raise_to_power(int64_t base, int64_t exponent) {
    int64_t res= 1;
    while (exponent > 0) {
        if (exponent & 1LL)
            res = res * base % lgput::MOD;
        exponent >>= 1;
        base = base * base % lgput::MOD;
    }

    return res;
}

void solve() {
    int64_t base, exponent;
    cin >> base >> exponent;

    cout << raise_to_power(base, exponent) << endl;
}

int main() {
    freopen("lgput.in", "r", stdin);
    freopen("lgput.out", "w", stdout);
    cin.tie(nullptr);
    ios_base::sync_with_stdio(false);

    solve();

    return 0;
}