Cod sursa(job #866498)

Utilizator daniel.pDaniel daniel.p Data 28 ianuarie 2013 11:08:05
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include<fstream>
#include<cstdio>
#include<cstring>
using namespace std;

ifstream in("lgput.in");
ofstream out("lgput.out");

int main (void)
{
    unsigned int n,i,p;
    long long  a,sol;
    sol=1;
    in>>n>>p;
    a=n;
    for (i=0; (1<<i)<=p; ++i)
    {
        if ( ((1<<i) & p ) > 0)
            sol = ( sol * a ) %  1999999973;
        a= ( a * a ) %  1999999973;
    }
    out<<sol<<'\n';
    in.close();
    out.close();
    return 0;

}