Cod sursa(job #3312730)

Utilizator depevladVlad Dumitru-Popescu depevlad Data 29 septembrie 2025 18:12:52
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.54 kb
#include <bits/stdc++.h>

using namespace std;

constexpr int MOD = 1999999973;

int exp(int N, int P) {
  if (P == 1) {
    return N;
  }
  int64_t intermediate = exp(N, P >> 1);
  intermediate = (intermediate * intermediate) % MOD;
  if (P & 1) {
    intermediate = (intermediate * N) % MOD;
  }
  return intermediate;
}

int main() {
#ifndef LOCAL
  freopen("lgput.in", "r", stdin);
  freopen("lgput.out", "w", stdout);
#endif
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  int N;
  int P;
  cin >> N >> P;
  cout << exp(N, P) << endl;
  return 0;
}