Cod sursa(job #1045252)

Utilizator TwoOfDiamondsDaniel Alexandru Radu TwoOfDiamonds Data 1 decembrie 2013 10:29:50
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.4 kb
#include <fstream>

using namespace std;

int lgput(int n, int p)
{
	if (p == 0)
		return 1;

	else if (p % 2 == 0)
	{
		return lgput(n*n, p / 2) % 1999999973;
	}

	else if (p % 2 == 1)
	{
		return n * lgput(n*n, (p - 1) / 2) % 1999999973;
	}
}

int main()
{
	ifstream IN("lgput.in");
	ofstream OUT("lgput.out");

	int n, p;
	IN >> n >> p;

	OUT << lgput(n, p) << endl;

	return 0;
}