Cod sursa(job #2756795)

Utilizator gabrielinelusGabriel-Robert Inelus gabrielinelus Data 2 iunie 2021 22:22:10
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.48 kb
#include <fstream>

using namespace std;

const long long MOD = 1999999973;

long long lgput(long long A, long long B) {
  if (B == 0) return 1;
  if (B == 1) return A % MOD;

  A = A % MOD;
  if (B % 2 == 0)
    return lgput( (A * A) % MOD, B / 2);
  return A * lgput( (A * A) % MOD, B / 2);
}

int main()
{
  ifstream fin("lgput.in");
  ofstream fout("lgput.out");

  fin.sync_with_stdio(false);
  fin.tie(0);
  
  long long A, B;
  fin >> A >> B;

  fout << lgput(A, B);
  
  return 0;
}