Cod sursa(job #2596392)

Utilizator avtobusAvtobus avtobus Data 9 aprilie 2020 18:03:38
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.49 kb
#include <stdio.h>
#include <bits/stdc++.h>

#define rep(i, n) for(int i = 0; i < n; i++)

using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef vector<int> vi;
const int INF = 0x3f3f3f3f;

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

ll mod = 1999999973;
ll N, P;

int main(void) {
  fin >> N >> P;
  ll res = 1;
  while(P) {
    if (P & 1) {
      res = (res * N ) % mod;
    }
    P /= 2;
    N = (1ll * N * N) % mod;
  }
  fout << res << endl;

  return 0;
}