Cod sursa(job #2128495)

Utilizator adriangh3Adrian Gheorghiu adriangh3 Data 11 februarie 2018 19:25:00
Problema Ridicare la putere in timp logaritmic Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.41 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;
	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;
}

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