Cod sursa(job #1800247)

Utilizator msciSergiu Marin msci Data 7 noiembrie 2016 16:52:11
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include <bits/stdc++.h>

using namespace std;

const long long MOD = 1999999973;

ifstream fin("lgput.in");
ofstream fout("lgput.out");

long long pow(long long x, long long n) {
    int y = 1;
    while (x > 1) {
        if (n % 2 == 0) {
            x *= x; x %= MOD; n /= 2;
        } else {
            y *= x; x *= x; x %= MOD; n = (n - 1) / 2;
        }
    }
    return (x * y) % MOD;
}

int main() {
    int N, P; fin >> N >> P;
    fout << pow(N, P) << endl;
}