Cod sursa(job #1860470)

Utilizator roxannemafteiuMafteiu-Scai Roxana roxannemafteiu Data 28 ianuarie 2017 08:44:26
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 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;
}