Cod sursa(job #2618893)

Utilizator KPP17Popescu Paul KPP17 Data 26 mai 2020 15:29:46
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.5 kb
#define fisier "lgput"
#ifndef fisier
    #define fisier "ULTRA"
#endif

#include <fstream>
std::ifstream in(fisier ".in");
std::ofstream out(fisier ".out");

#define ul unsigned long long
const ul
MOD = 1999999973;

ul putere(ul b, ul exp)
{
    if (!exp)
        return 1;

    ul rt = putere(b, exp >> 1);

    rt *= rt;
    rt %= MOD;

    if (exp & 1)
    {
        rt *= b;
        rt %= MOD;
    }

    return rt;
}

int main() {ul n, p; in >> n >> p; out << putere(n, p);}