Cod sursa(job #1947438)

Utilizator Tataru_AdelinTataru Adelin Tataru_Adelin Data 30 martie 2017 22:59:45
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <bits/stdc++.h>
#define M 1999999973
using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
long long unsigned _pow(long long unsigned base, long long unsigned exponent)
{
    if(exponent==0)
        return 1;
    if(exponent==1)
        return base%M;
    if(exponent%2==0)
        return _pow(base*base%M,exponent/2)%M;
    else
        return _pow(base*base%M,(exponent-1)/2)*base%M;
}
int main()
{
    long long unsigned base, exponent;
    fin>>base>>exponent;
    fout<<_pow(base,exponent)<<'\n';
    return 0;
}