Cod sursa(job #1983787)

Utilizator vladrochianVlad Rochian vladrochian Data 22 mai 2017 13:23:02
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include <iostream>

using namespace std;

const int MOD = 1999999973;

void Multiply(int& a, int b) {
    a = int64_t(a) * b % MOD;
}

int Pow(int a, int b) {
    int ans = 1;
    while (b > 0) {
        if (b & 1)
            Multiply(ans, a);
        b >>= 1;
        Multiply(a, a);
    }
    return ans;
}

int main() {
    int N, P;
    ifstream("lgput.in") >> N >> P;
    ofstream("lgput.out") << Pow(N, P) << "\n";
    return 0;
}