Cod sursa(job #2069875)

Utilizator danny794Dan Danaila danny794 Data 18 noiembrie 2017 22:01:35
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.4 kb
#include <fstream>

#define MOD 1999999973

long n, p;
std::ifstream cin("lgput.in");
std::ofstream cout("lgput.out");

long power(long n, long p) {
  if (p == 0) {
    return 1;
  } else if (p % 2 == 0) {
    return power(n * n % MOD, p / 2);
  } else if (p % 2 == 1) {
    return power(n * n % MOD, p / 2) * n % MOD;
  }
  return 0;
}

int main() {
  cin >> n >> p;
  cout << power(n, p);
  return 0;
}