Cod sursa(job #2274642)

Utilizator MarianConstantinMarian Constantin MarianConstantin Data 2 noiembrie 2018 11:14:12
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.59 kb
#include <iostream>
#include <fstream>
#define M 1999999973

using namespace std;

long long exp(long long base, long long power)
{
    long long result = 1, numberToMult = base;
    while(power)
    {
        if ((power & 1) == 1)
            result = ( (result % M) * (numberToMult % M) ) % M;
        numberToMult = ( (numberToMult % M) * (numberToMult % M) ) % M;
        power = (power >> 1);
    }
    return result;
}

int main()
{
    ifstream fin("lgput.in");
    ofstream fout("lgput.out");
    long long n, p;
    fin >> n >> p;
    fout << exp(n, p);
    return 0;
}