Cod sursa(job #2611331)

Utilizator michael_blazemihai mihai michael_blaze Data 6 mai 2020 18:12:43
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.47 kb
#include <iostream>

using namespace std;


const int MOD = 1999999973;

long long ridicare_la_putere(long long x, int n) {
	if (n == 0)
		return 1;
	if (n % 2 == 0)
		return ridicare_la_putere((x * x) % MOD, n / 2) % MOD;
	else
		return x * (ridicare_la_putere((x * x) % MOD, (n - 1) / 2)) % MOD;
}

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

	cout << ridicare_la_putere(x, n);

	return 0;
}