Cod sursa(job #1861041)

Utilizator PoseidonGeminiPoseidonGemini PoseidonGemini Data 28 ianuarie 2017 15:38:14
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include <bits/stdc++.h>

using namespace std;

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

const int MOD = 1999999973;

long long mod(long long m) {
    return (m * m) % MOD;
}

long long pow(long long base, long long exponent) {
    if (!exponent) return 1;
    if (exponent == 1) return base;
    return (!(exponent & 1)) ? mod(pow(base, exponent / 2)) : (base * mod(pow(base, exponent / 2))) % MOD;
}

int main() {
    long long n, p;
    fin >> n >> p;
    fout << pow(n, p);
    return 0;
}