Cod sursa(job #1453203)

Utilizator depevladVlad Dumitru-Popescu depevlad Data 22 iunie 2015 23:07:32
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include <fstream>

using namespace std;

const int MOD = 1999999973;

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

int raiseMod(int base, int exp) {
    int ans = 1, pow = base, i;
    if(exp == 0) return 1;
    for(i = 0; (1<<i) <= exp; i++) {
        if((1<<i) & exp)
            ans = ((long long)ans * pow) % MOD;
        pow = ((long long)pow * pow) % MOD;
    }
    return ans;
}

int main() {
    int n, p;

    in >> n >> p;
    out << raiseMod(n, p);

    return 0;
}