Cod sursa(job #2089458)

Utilizator IustinPetrariuIustinian Petrariu IustinPetrariu Data 16 decembrie 2017 16:00:25
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.35 kb
#include <iostream>
#define Mod 1999999973
using namespace std;
long long b, pw;
int pow(long long b, long long pw)
{
    if(pw==1) return b;

    long long p = pow(b,pw/2)%Mod;
    return ((((p*p)%Mod)*(pw%2 ? b : 1)))%Mod;

}
int main()
{
     cin>>b>>pw;
     if(!pw) cout<<1<<'\n';
     else
        cout<<pow(b,pw);
    return 0;
}