Cod sursa(job #2278173)

Utilizator SemetgTemes George Semetg Data 7 noiembrie 2018 13:38:51
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.48 kb
#include <fstream>
using namespace std;

#define MOD 1999999973

ifstream cin("lgput.in");
ofstream cout("lgput.out");

inline int64_t pow_log(int64_t n, int64_t p) {
    if (p == 1)
        return n % MOD;

    if (p % 2 == 0)
        return pow_log(((n % MOD) * (n % MOD)) % MOD, p / 2);
    else
        return ((n % MOD) * (pow_log(((n % MOD) * (n % MOD)) % MOD, p / 2) % MOD) % MOD);
}

int main() {
    int64_t n ,p;
    cin >> n >> p;

    cout << pow_log(n, p);
}