快速幂、乘法取模

次方快速幂

#include<iostream>
using namespace std;
int main() {
	int a, b, c, ans = 1;
	cin >> a >> b >> c;
	while(b) {
		if(b & 1)	ans = (ans * a) % c;
		a = (a * a) % c;
		b >>= 1;
	}
	cout << ans % c << endl;
	return 0;
}

乘法取模

#include<iostream>
using namespace std;
int main() {
	int a, b, c, ans = 0;
	cin >> a >> b >> c;
	while(b) {
		if(b & 1) ans = (ans + a) % c;
		a = (a * a) % c;
		b >>= 1;
	}
	cout << ans % c <<endl;
	return 0; 
}
原文地址:https://www.cnblogs.com/lifehappy/p/12601191.html