Cod sursa(job #2917607)

Utilizator vasi_kosminskiHoroi Vasile vasi_kosminski Data 5 august 2022 22:01:25
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.56 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 1;
	}

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

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

}

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

	fin >> n >> p;

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

	return 0;
}