Cod sursa(job #2887333)

Utilizator popashtefan10Popa Stefan popashtefan10 Data 9 aprilie 2022 13:27:01
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.58 kb
#include <iostream>
#include <cstdio>

using namespace std;

const unsigned long long MOD = 1999999973;

unsigned long long fast_pow(unsigned long long a, unsigned long long p) {
  unsigned long long rezultat = 1;
  a %= MOD;
  p %= MOD;

  while(p) {
    if(p & 1)
      rezultat = (rezultat * a) % MOD;
    a = (a * a) % MOD;
    p >>= 1;
  }

  return rezultat;
}

int main() {
  freopen("lgput.in", "r", stdin);
  freopen("lgput.out", "w", stdout);

  unsigned long long n, p;
  scanf("%llu %llu", &n, &p);
  printf("%llu", fast_pow(n, p));

  return 0;
}