Cod sursa(job #1384380)

Utilizator addy01adrian dumitrache addy01 Data 11 martie 2015 07:59:41
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <iostream>
#include <fstream>
using namespace std;

const int MOD = 1999999973;
long long N,P;

long long lgpow(long long x,long long P)
{
    if(P==0)
        return 1;
    if(P==1)
        return (1LL*x)%MOD;
    if(P%2==0)
        return (1LL*lgpow(x*x,P/2))%MOD;
    else
        return (1LL*x*lgpow(x*x,(P-1)/2))%MOD;
}

int main()
{
    ifstream in("lgput.in");
    ofstream out("lgput.out");
    in>>N>>P;
    out<<lgpow(N,P);
    return 0;
}