Cod sursa(job #1236940)

Utilizator ELHoriaHoria Cretescu ELHoria Data 2 octombrie 2014 20:33:43
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.41 kb
#include <fstream>

using namespace std;

int logpow(int a,int b, const int& mod) {
	int ret = 1;
	while (b > 0) {
		if (b & 1) {
			ret = 1LL * ret * a % mod;
		}
		a = 1LL * a * a % mod;
		b >>= 1;
	}
	
	return ret;
}

int main() {
	ifstream cin("lgput.in");
	ofstream cout("lgput.out");
	const int mod = 1999999973;
	int N, P;
	cin >> N >> P;
	cout << logpow(N, P % (mod  - 1), mod);
	return 0;
}