Cod sursa(job #2283507)

Utilizator BotzkiBotzki Botzki Data 15 noiembrie 2018 16:23:57
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.51 kb
#include <fstream>
using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
const int MOD= 1999999973;
int lg_pow(int a, int b)
{
    int p;
    for(p=1;b!=0;b=b>>1)
    {
        //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;
    }
    return p;
}
int main()
{
   int a, b, p;
   fin>>a>>b;
   fout<<lg_pow(a, b)<<"\n";

    return 0;
}