Cod sursa(job #2043017)

Utilizator Andreiii500Andrei Puiu Andreiii500 Data 19 octombrie 2017 16:21:10
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include<iostream>
#include<fstream>
using namespace std;

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

long long MOD = 1999999973;

long long pow(long long base, long long exp)
{
    //cout<<base<<" "<<exp<<"\n";
    if(exp == 0) return 1;
    if(exp == 1) return base;

    if(exp%2 == 1)
        return (pow((base*base)%MOD, exp/2) * base)%MOD;
    else if(exp%2 == 0)
        return pow((base*base)%MOD, exp/2)%MOD;
}

int main()
{
    long long a,b;

    in>>a>>b;
    out<<pow(a, b);
    return 0;
}