Cod sursa(job #1754531)

Utilizator AhileGigel Frone Ahile Data 8 septembrie 2016 13:56:25
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include<bits/stdc++.h>
#define in f
#define out g
using namespace std;

ifstream f("lgput.in");
ofstream g("lgput.out");


long long n;
long long p;
const int MOD = 1999999973;

int l(long long n, long long p) {

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

}

int main() {

    in >> n;
    in >> p;

    out << l(n, p) % MOD;
}