Cod sursa(job #3301211)

Utilizator EgreogHorvath George Egreog Data 23 iunie 2025 11:35:31
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.48 kb
#include <algorithm>
#include <fstream>
#include <iomanip>
using namespace std;
#define MOD 1999999973

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

int f(int nr, int p) {
  if (nr == 0)
    return 0;
  if (p == 0)
    return 1;
  if (p == 1)
    return nr;

  if (p % 2 != 0)
    return nr * f(nr, p - 1) % MOD;

  int x = f(nr, p / 2);
  return x * x % MOD;
}

int main() {
  int n, p;
  fin >> n >> p;
  fout << f(n, p);
  return 0;
}

// https: // infoarena.ro/problema/lgput