Cod sursa(job #2742707)

Utilizator michael_blazemihai mihai michael_blaze Data 21 aprilie 2021 16:18:32
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>

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

const int MOD = 1999999973;
unsigned long long ridicare_la_putere(unsigned long long x, unsigned long long n)
{
    if (n == 0)
        return 1;

    unsigned long long result;

    result = ridicare_la_putere(x, n / 2) % MOD;
    result = (result * result) % MOD;

    if (n % 2 == 1)
        result = (result * n) % MOD;
    return result;
}

int main() {
    unsigned long long x, n;
    fin >> x >> n;
    fout << ridicare_la_putere(x, n);
    return 0;
}