Cod sursa(job #1524540)

Utilizator jescucosminJescu Cosmin jescucosmin Data 14 noiembrie 2015 11:15:47
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    ifstream fin("lgput.in");
    ofstream fout("lgput.out");
    long long int n,p,v[51],i,k=1,P=1;
    fin>>n>>p;
    v[0]=n;
    for(i=1;i<=40;i++)
    {
        v[i]=(v[i-1]*v[i-1])%1999999973;
    }
    i=0;
    while(k<p)
    {
        k=k*2;
        i++;
    }
    while(p>0)
    {
        if(k<p)
        {
            p=p-k;
            P=(P*v[i])%1999999973;
        }
        k=k/2;
        i--;
    }
    fout<<P;




       return 0;
}