Cod sursa(job #1125913)

Utilizator gabrielvGabriel Vanca gabrielv Data 26 februarie 2014 20:11:24
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <cstdio>

using namespace std;

#define MOD 1999999973

long long PowLog(long long N, long long P)
{
    long long Sol = 1;

    while(P)
    {
        if(P&1)
            Sol = (Sol * N)%MOD;
        N = (N * N) % MOD;
        P >>= 1;
    }
    return Sol;
}

int main()
{
    freopen("lgput.in","r",stdin);
    freopen("lgput.out","w",stdout);

    long long N,P;
    scanf("%lld %lld",&N,&P);
    printf("%lld",PowLog(N,P));

    return 0;
}