Cod sursa(job #1734584)

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

using namespace std;

#define MOD 1999999973

long long lgput(long long N, long long P) {
	long 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 long N, P, res;

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

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

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

	return 0;
}