Cod sursa(job #1360316)

Utilizator mirceadinoMircea Popoveniuc mirceadino Data 25 februarie 2015 13:47:41
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<cstdio>
#include<string>

using namespace std;

#ifdef HOME
const string inputFile = "input.txt";
const string outputFile = "output.txt";
#else
const string problemName = "lgput";
const string inputFile = problemName + ".in";
const string outputFile = problemName + ".out";
#endif

typedef long long int lld;
const int MOD = 1999999973;

lld expLog(int B, int E) {
    if(E == 0) return 1LL;
    if(E == 1) return B % MOD;
    lld t = expLog(B, E / 2);
    return ((t * t) % MOD * expLog(B, E % 2)) % MOD;
}

int main() {
    int N, P;

    freopen(inputFile.c_str(), "r", stdin);
    freopen(outputFile.c_str(), "w", stdout);

    scanf("%lld%lld", &N, &P);

    printf("%lld\n", expLog(N, P));

    return 0;
}