Cod sursa(job #2128544)

Utilizator adriangh3Adrian Gheorghiu adriangh3 Data 11 februarie 2018 20:06:45
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 kb
#include <fstream>
using namespace std;
ifstream in("lgput.in");
ofstream out("lgput.out");
typedef unsigned long long int ulint;
#define BIGPRIME 1999999973

ulint pow(ulint n, ulint p)
{
	if (p == 1) return n % BIGPRIME;
	if (p % 2 == 0) return pow(n, p / 2)*pow(n, p / 2) % BIGPRIME;
	return n * (pow(n, p / 2)*pow(n, p / 2) % BIGPRIME) % BIGPRIME;
}

int main()
{
	ulint n, p;
	in >> n >> p;
	out << pow(n, p);
	return 0;
}