Cod sursa(job #2464964)

Utilizator mvcl3Marian Iacob mvcl3 Data 29 septembrie 2019 11:11:23
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.49 kb
#include<iostream>
#include<fstream>

const unsigned long long MODULO = 1999999973;

unsigned long long pow(unsigned long long x, unsigned long long e) {
	unsigned long long xx = 1;
	for (int i = 0; (1 << i) <= e; ++i) {
		if ((1 << i) & e) {
			xx = (x * xx) % MODULO;
		}

		x = (x * x) % MODULO;
	}

	return x;
}

int main() {
	std::ifstream in("lgput.in");
	std::ofstream out("lgput.out");

	unsigned long long n, p;
	in >> n >> p;

	out << pow(n % MODULO, p);

	return 0;
}