Cod sursa(job #1514960)

Utilizator cristid9Cristi D cristid9 Data 31 octombrie 2015 20:54:24
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <iostream>
#include <fstream>

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

    const int mod = 1999999973;

    long long solution = 1;
    int base;
    int power;

    in >> base;
    in >> power;

    long long int current_mod = base % mod;
    while (power != 0)
    {
        if ((power & 1) != 0)
        {
            solution = (solution * current_mod) % mod;
            std::cout << solution << std::endl;
        }

        current_mod = (current_mod * current_mod) % mod;
        power >>= 1;
    }

    solution %= mod;

    out << solution;

    in.close();
    out.close();

    return 0;
}