Cod sursa(job #1658949)

Utilizator teoceltareconstantin teodor teoceltare Data 21 martie 2016 21:36:51
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include<iostream>
#include<fstream>
using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
long long n,p,e=1,x=1,m;
bool v[32];
int main()
{
    fin>>n>>p;
    while(p>0)
    {
        m++;
        if(p%2==1) v[m]=1;
        p/=2;
    }
    x=n;
    for(int i=1;i<=m;i++)
    {
        if(v[i]==1)
        {
            e*=x;
            e%=1999999973;
        }
        x*=x;
        x%=1999999973;    }
    fout<<e%1999999973;
}