Cod sursa(job #1671910)

Utilizator CosminRusuCosmin Rusu CosminRusu Data 2 aprilie 2016 11:33:17
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include <iostream>
#include <fstream>

using namespace std;

const int mod = 1999999973;

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

int lgpow(int a, int n) {
    if(n == 0)
        return 1;
    int semipow = lgpow(a, n / 2);
    semipow = ((long long)semipow * semipow) % mod;
    if(n % 2 == 0)
        return semipow;
    else
        return ((long long)semipow * a) % mod;
}

int main() {
    int N, P;
    fin >> N >> P;
    fout << lgpow(N, P) << '\n';
}