Cod sursa(job #2089460)

Utilizator IustinPetrariuIustinian Petrariu IustinPetrariu Data 16 decembrie 2017 16:03:53
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include <iostream>
#include <fstream>
#define Mod 1999999973
using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
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()
{
     fin>>b>>pw;
     if(!pw) fout<<1<<'\n';
     else
        fout<<pow(b,pw);
    return 0;
}