Cod sursa(job #1989970)

Utilizator cosmo0093Raduta Cosmin cosmo0093 Data 9 iunie 2017 19:07:56
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <iostream>
#include <fstream>

#define MOD 1999999973

long long unsigned pow(long long nV, long long p) {
    if (p == 0) return 1;
    long long unsigned aux = nV % MOD;
    if (p == 1) return aux;
    if (p % 2) return (aux * pow(aux * aux, (p - 1) / 2)) % MOD;
    return pow(aux * aux, p / 2) % MOD;
}

int main() {
    std::ifstream fileIn("lgput.in");
    std::ofstream fileOut("lgput.out");

    long long unsigned nV, p;

    fileIn >> nV >> p;

    fileOut << pow(nV, p) % MOD;

    fileIn.close();
    fileOut.close();
    return 0;
}