Cod sursa(job #1648518)

Utilizator roxannemafteiuMafteiu-Scai Roxana roxannemafteiu Data 11 martie 2016 10:32:38
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include <fstream>

using namespace std;

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

const int MOD = 1999999973;

long long N, P;

long long dub(long long x) {

    return (x * x) % MOD;
}

long long powi(long long a, long long b) {

    if(!b)
        return 1;
    if(b == 1)
        return a;
    return (!(b % 2)) ? dub(powi(a, b / 2)) : (a * dub(powi(a, b / 2))) % MOD;
}

int main() {

    fin >> N >> P;
    fout << powi(N, P);

    return 0;
}