Cod sursa(job #2267707)

Utilizator BeilandArnoldArnold Beiland BeilandArnold Data 23 octombrie 2018 21:56:23
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.6 kb
#include <iostream>
#include <fstream>
using namespace std;

const long long MODULO = 1999999973;

long long hatvanyoz(long long alap, long long kitevo)
{
    if (kitevo == 0)
        return 1;
    else if (kitevo == 1)
        return alap % MODULO;
    else
    {
        long long x = hatvanyoz(alap, kitevo / 2);
        x = (x * x) % MODULO;

        if (kitevo % 2 != 0)
            x = x * alap % MODULO;

        return x;
    }
}

int main()
{
    ifstream f("lgput.in");
    ofstream g("lgput.out");
    long long alap, kitevo;
    f >> alap >> kitevo;
    g << hatvanyoz(alap, kitevo);
    return 0;
}