Cod sursa(job #2931639)

Utilizator k20ySabaceag Marius k20y Data 31 octombrie 2022 17:49:20
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.43 kb
#include <bits/stdc++.h>
using namespace std;

ifstream in("lgput.in");
ofstream out("lgput.out");

const int modulo = 1999999973;
using ll = long long;

ll lgput(ll x, ll putere)
{
    ll rez = 1;

    while(putere)
    {
        if(putere%2 == 1) rez*=x;
        putere/=2;
        (x*=x)%=modulo;
    }

    return rez%modulo;
}

int main()
{

    ll n,p; in>>n>>p;
    out<<lgput(n,p);

    return 0;
}