Cod sursa(job #1609812)

Utilizator gerd13David Gergely gerd13 Data 23 februarie 2016 00:53:38
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include <fstream>

using namespace std;
const int MOD = 1999999973 ;
unsigned long long N, P ;

ifstream fin("lgput.in") ;
ofstream fout("lgput.out") ;
long long EXP(long long N, long long P)
{
    if(P == 0)
        return 1 ;
     if(P % 2 == 0) return (EXP(((N % MOD) * (N % MOD))%MOD, P / 2)) % MOD ;
    else return (N * EXP(((N % MOD) * (N % MOD))%MOD, (P - 1) / 2))% MOD ;
}

int main()
{
    fin >> N >> P ;
    fout << EXP(N, P) << '\n' ;
    return 0;
}