Sunday, June 7, 2015

UVa 374 - Big Mod

// UVa 374 - Big Mod

#include <iostream>
using namespace std;

#define datatype unsigned long long

datatype b, p, m;

datatype calc(datatype p) {
	if (p == 0)
		return 1;
	else
		return (((calc(p / 2) * calc(p / 2)) % m) * (p % 2 == 1 ? b : 1)) % m;
}

int main() {
	while (cin >> b >> p >> m) {
		b = b % m;
		cout << calc(p) << endl;
	}
	return 0;
}

No comments:

Post a Comment