Cod sursa(job #2285937)

Utilizator skoda888Alexandru Robert skoda888 Data 19 noiembrie 2018 16:01:55
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb

///EXPONENTIERE LOGARITMICA

#include <iostream>
#include <fstream>

const long long MODULO_VALUE = 1999999973;

long long int pow_logaritmic(long long int num, long long int pow){
    if(!pow){
        return 1;
    }

    if(pow % 2 == 0){
        return pow_logaritmic(num * num % MODULO_VALUE, pow / 2) % MODULO_VALUE;
    }
    return num * pow_logaritmic(num * num % MODULO_VALUE, pow / 2) % MODULO_VALUE;
}

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

    long long int num, pow;
    in >> num >> pow;

    out << pow_logaritmic(num, pow);
    return 0;
}