Cod sursa(job #2574698)

Utilizator RagnoRazvan Petec Ragno Data 6 martie 2020 08:58:20
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.52 kb
#include <bits/stdc++.h>
#pragma GCC optimize("O3")
#define ll long long
#define input "lgput.in", "rt", stdin
#define output "lgput.out", "wt", stdout
using namespace std;

const ll MOD = 2e9 - 27;

ll pow(ll n, ll p)
{
    ll r = 1;
    assert (p > 0);
    for (; p; p >>= 1)
    {
        if (p & 1) r = r * n % MOD;
        n = n * n % MOD;
    }
    return r;
}

ll n, p, r;

main()
{
    freopen(input);
    freopen(output);
    cin >> n >> p;
    r = pow(n, p);
    cout << r;
    return 0;
}