Cod sursa(job #1098329)

Utilizator gabrielvGabriel Vanca gabrielv Data 4 februarie 2014 18:57:44
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 kb
#include <cstdio>

using namespace std;

#define MOD 1999999973

int PowLog(int N, int P)
{
    int 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);

    int N,P,Sol;
    scanf("%d%d",&N,&P);
    printf("%d",PowLog(N,P));

    return 0;
}