Cod sursa(job #1890970)

Utilizator darkviper17Dark Viper darkviper17 Data 23 februarie 2017 17:18:39
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.41 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
const long M=1999999973;
int lgput(long long a, long long b)
{
    a = a%M;
    if(b==1)return a;
    if(b==0)return 1;
    if(b&1)
        return a*lgput(a*a,(b-1)/2)%M;
    return lgput(a*a,b/2)%M;
}
int main() {
    long long a, n;
    fin>>a>>n;
    a%=M;
    fout<<lgput(a, n)%1999999973;
    return 0;
}