这里有一篇讲的很好的,放在这里。我就不再赘述。
#include<iostream>
using namespace std;
typedef long long ll; //以后都用ll代替long long
// 底数 指数 对p求模
int qmi(int base, int power, int p) {
int res = 1; //用一个数记录
while (power) {
//power & 1等价于power % 2 == 1
if (power & 1) res = (ll)res * base % p;
base = (ll)base * base % p;
//power >>= 1;等价于power = power / 2
power >>= 1;
}
return res;
}
int main() {
int base, power, p;
cin >> base >> power >> p;
cout << qmi(base, power, p) << endl;
return 0;
}
里面有一些位运算符操作。这里推荐一篇博客可以去学习。
总结:其他两篇博客写的很好,我的就算了吧,代码可以看,但是思考的话还是看推荐的两篇博客。