Cod sursa(job #1947424)

Utilizator Tataru_AdelinTataru Adelin Tataru_Adelin Data 30 martie 2017 22:43:23
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 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;
    if(exponent%2==0)
        return pow(base*base,exponent/2)%M;
    else
        return pow(base*base,(exponent-1)/2)*base%M;
}
int main()
{
    long long unsigned base, exponent;
    fin>>base>>exponent;
    fout<<pow(base,exponent)<<'\n';
    return 0;
}