Cod sursa(job #1323142)

Utilizator gabrielvGabriel Vanca gabrielv Data 20 ianuarie 2015 18:50:55
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include <cstdio>

using namespace std;

#define MOD 1999999973

long long LgPow(long long N, long long P)
{
    long long S = 1;

    while(P)
    {
        if(P%2)
            S = (S*N)%MOD;

        N = (N*N)%MOD;
        P>>=2;
    }

    return S;
}

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

    long long N,P;

    scanf("%lld%lld",&N,&P);
    printf("%lld\n",LgPow(N,P));

    return 0;
}