快速冪、乘法取模

次方快速冪

#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; 
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章