Cod sursa(job #2341210)

Utilizator pusneivictorVictor Pusnei pusneivictor Data 11 februarie 2019 17:58:00
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.47 kb
#include <bits/stdc++.h>
using namespace std;

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

const uint64_t MOD = 1999999973;

uint64_t POW(uint64_t n, uint64_t p)
{
    uint64_t r = 1;
    for (uint64_t i = 0; (1 << i) <= p; ++i)
    {
        if (((1 << i) & p) > 0)
            r = (r * n) % MOD;
        n = (n * n) % MOD;
    }
    return r;
}

int32_t main()
{
    uint64_t n, p;

    fin >> n >> p;
    fout << POW(n, p);

    return 0;
}