Cod sursa(job #2237979)

Utilizator radu.leonardoThe Doctor radu.leonardo Data 4 septembrie 2018 02:26:16
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <fstream>

using namespace std;
const uint64_t kMod=1999999973;

template<class T>
T fast_pow(T base,T power) {
    T result=1;
    while(power) {
        if(power%2)
            result=(result*base)%kMod;
        power=power/2;
        base=(base*base)%kMod;
    }
    return result;
}

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

    uint64_t base,power;
    fin>>base>>power;
    fout<<fast_pow<uint64_t>(base,power);

    return 0;
}