Cod sursa(job #256127)

Utilizator alex.cepoiAlexandru Cepoi alex.cepoi Data 11 februarie 2009 09:59:07
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.35 kb
#include <iostream>
using namespace std;
#define M 1999999972

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

	long long N,P;
    cin>>N>>P;

    long long sol=1,tmp=N;

    for (long long i=0; P >= (1<<i); ++i)
    {
        if ((1<<i) & P) sol= (sol*tmp) % M;
        tmp=(tmp*tmp) % M;
    }

    cout<<sol;
    return 0;
}