一、内容

题意: ab % c 1<= a, b, c<=2 63

二、思路

三、代码

#include <cstdio>
typedef long long ll;
typedef unsigned long long ull;
ll a, b, c;
ll mul(ll a,ll b, ll MOD){
	ll ans = 0;
	while (b) {
		if (b & 1) {
			ans = (ans + a) % MOD; 
		} 
		b >>= 1;
		a = (a << 1) % MOD; 
	}
    return ans;
}
ll ksc(ll x, ll y, ll MOD) {
	ll z = (long double)x /MOD * y;
	ll ans = (ull)x * y - (ull)z * MOD;
	return (ans + MOD) % MOD;
}
ll quickPow(ll a, ll b, ll MOD) {
	ll ans = 1;
	while (b) {
		if (b & 1) {
			ans = ksc(ans, a, MOD);
		}
		a = ksc(a, a, MOD);	
		b /= 2;
	}
	return ans;
}
int main() {
	while (scanf("%lld%lld%lld", &a, &b, &c) != EOF) {
		printf("%lld\n", quickPow(a % c, b, c));
	}
	return 0;
}