Cod sursa(job #2283544)

Utilizator BotzkiBotzki Botzki Data 15 noiembrie 2018 17:00:10
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.57 kb
#include <fstream>
using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
const int MOD= 1999999973;
long long lg_pow(long long a, long long b)
{
    //(a ^ b) % MOD
   long long p=1;
   while(b>0)
   {
        //b>>1 - operatii pe viti pentrui b=b/2;
        //b&1 - operatii pe biti pentru b%2==1
        if(b&1)
                p = ( p *( a % MOD )) % MOD;
        a = ((a % MOD )  *  (a % MOD ))% MOD;
        b = b>>1;
    }
    return p;
}

int main()
{
   long long a, b;
   fin>>a>>b;
   fout<<lg_pow(a, b)<<"\n";
    return 0;
}