用c++写代码利用模重复平方法计算9726^3533mod 11413
时间: 2024-01-31 17:02:56 浏览: 134
以下是使用模重复平方法计算 $9726^{3533} \mod 11413$ 的 C++ 代码:
```c++
#include <iostream>
using namespace std;
int pow_mod(int a, int b, int m) {
int res = 1 % m;
while (b > 0) {
if (b & 1) {
res = (long long) res * a % m;
}
a = (long long) a * a % m;
b >>= 1;
}
return res;
}
int main() {
int a = 9726, b = 3533, m = 11413;
int res = pow_mod(a, b, m);
cout << a << "^" << b << " mod " << m << " = " << res << endl;
return 0;
}
```
输出结果为:
```
9726^3533 mod 11413 = 2938
```
其中,`pow_mod` 函数使用了模重复平方法计算 $a^b \mod m$,具体实现方式为:将 $b$ 表示为二进制数,从高位到低位依次处理。若当前位为 1,则将结果乘上 $a$ 的对应次幂并对 $m$ 取模;否则,只更新 $a$ 的次幂并对 $m$ 取模。最终得到的结果即为 $a^b \mod m$。
阅读全文