Cod sursa(job #2330194)

Utilizator igsifvevc avb igsi Data 28 ianuarie 2019 01:24:02
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.39 kb
#include <fstream>
#include <cstdint>

const uint64_t modulo = 1999999973;

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

    uint64_t n, p;
    fin >> n >> p;

    uint64_t res = 1;
    for (uint64_t b = n; p; p >>= 1, b = (b * b) % modulo)
    {
        if (p & 1)
            res = (res * b) % modulo;
    }

    fout << res << std::endl;

    return 0;
}