Cod sursa(job #1734583)

Utilizator vladc096Vlad Cincean vladc096 Data 27 iulie 2016 18:35:13
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include <fstream>

using namespace std;

#define MOD 1999999973

long lgput(long N, long P) {
	long res = 1;

	while (P > 0) {
		if (P % 2 == 1) {
			res = (res * N) % MOD;
			P--;
		}
		N = (N * N) % MOD;
		P = P / 2;
	}

	return res;
}

int main() {
	long N, P, result;

	// input
	ifstream f("lgput.in");
	f >> N >> P;
	f.close();

	// compute
	result = lgput(N, P);

	// output
	ofstream g("lgput.out");
	g << result << "\n";
	g.close();

	return 0;
}