Cod sursa(job #2917602)

Utilizator vasi_kosminskiHoroi Vasile vasi_kosminski Data 5 august 2022 21:40:49
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.54 kb
#include <iostream>
#include <fstream>

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

long long int logarithmic(int n, int p, const int modulo)
{
	if (p == 0)
	{
		return n;
	}

	if (p % 2 == 1)
	{
		return (n * (logarithmic(n, p - 1, modulo) % modulo));
	}

	long long int putere = logarithmic(n, p/2, modulo);
	return (((putere % modulo) * (putere % modulo)) % modulo);

}

int main() {
	int n, p;
	const int modulo = 1999999973;

	fin >> n >> p;

	fout << logarithmic(n, p, modulo);

	return 0;
}