Cod sursa(job #1034441)

Utilizator Iustin_BulimarFMI Iustin Bulimar Iustin_Bulimar Data 17 noiembrie 2013 20:31:33
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.35 kb
#include <fstream>
using namespace std;
ifstream cin("lgput.in");
ofstream cout("lgput.out");

const int n_max = 10001;
const int m = 1999999973;
unsigned int i, n, p;
long long a, k=1;

int main()
{
    cin>>n>>p;
    a=n;
    for(i=0; (1<<i)<= p; ++i)
    {
        if(((1<<i) & p)>0) k=(k*a)%m;
        a=(a*a)%m;
    }
    cout<<k;
}