Cod sursa(job #797814)

Utilizator catalinb91Catalin Badea catalinb91 Data 14 octombrie 2012 22:14:25
Problema Ridicare la putere in timp logaritmic Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <iostream>
#include <fstream>

std::ifstream input("lgput.in");
std::ofstream output("lgput.out");

static const long long rest = 1999999973;

long long pow (long long base, long long power) {
	if (power == 0)
		return 1;

	long long square = pow(base, power / 2) % rest;
	long long result = square * square;
	if (power % 2)
		result *= base;

	return result % rest;
}

int main() {
	long long base;
	long long power;

	input >>  base >> power;
	output << pow(base, power);
}