Cod sursa(job #1944188)

Utilizator andreiutu111Noroc Andrei Mihail andreiutu111 Data 28 martie 2017 23:22:20
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <fstream>
#include <cmath>

using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");

int long long N,P,result;


int main()
{
    fin>>N>>P;
    if(N==0)fout<<0;
    else if(N==1 || P==0)fout<<1;
    else if(P==1)fout<<N;
    else {
            result=1;
            while(P){

               if(P&1)
                    result=(result * N)%1999999973;

                P>>=1;
                N*=N;

            }
    fout<<result;
    }

}