Cod sursa(job #1193202)

Utilizator ZenusTudor Costin Razvan Zenus Data 31 mai 2014 11:38:41
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.41 kb
#include <cstdio>

using namespace std;

#define MOD 1999999973

int N,P;

int lgPut(int N,int P)
{
    int i,sol=1;

    for (i=0;(1<<i)<=P;++i)
    {
        if ( ((1<<i) & P)>0 ) sol=(sol*N)%MOD;
        N=(N*N)%MOD;
    }

    return sol;
}

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

scanf("%d%d",&N,&P);

printf("%d",lgPut(N,P));

return 0;
}