Cod sursa(job #2481937)

Utilizator Botzki17Botocan Cristian-Alexandru Botzki17 Data 27 octombrie 2019 16:46:38
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.53 kb
#include <fstream>

using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
const int MOD = 1999999973;
long long putere_lg(long long base, long long exp)
{
  long long p=1;
  while(exp > 0)
  {
      if(exp & 1)  ///este echivalent cu exp % 2 == 1
        p = (p* (base%MOD))%MOD;
      base = ((base%MOD) * (base%MOD) )% MOD;
      exp = exp>>1; ///este echivalent cu p = p/2
  }
  return p;

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