Cod sursa(job #2170152)

Utilizator theodor.vladTheodor Vlad theodor.vlad Data 14 martie 2018 22:33:36
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include <fstream>
#define R 1999999973

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

unsigned long long putere(unsigned long long, unsigned long long);

int main()
{
	unsigned long long n, p;
	fin >> n >> p;
	fout << putere(n, p) << '\n';
	return 0;
}

unsigned long long putere(unsigned long long n, unsigned long long p)
{
	unsigned long long aux = 1;
	while (p)
	{
		if (p % 2)
			aux = (aux * n) % R;
		n = (n * n) % R;
		p /= 2;
	}
	return aux;
}