用c语言实现模重复平方法的算法
时间: 2023-05-30 17:01:42 浏览: 99
以下是使用C语言实现模重复平方法的算法的示例代码:
```c
#include <stdio.h>
// 模重复平方法
int mod_exp(int base, int exponent, int mod) {
int result = 1;
base %= mod;
while (exponent > 0) {
if (exponent % 2 == 1) {
result = (result * base) % mod;
}
exponent >>= 1;
base = (base * base) % mod;
}
return result;
}
int main() {
int base, exponent, mod;
printf("请输入底数、指数和模数:");
scanf("%d%d%d", &base, &exponent, &mod);
int result = mod_exp(base, exponent, mod);
printf("%d的%d次幂模%d的结果为:%d\n", base, exponent, mod, result);
return 0;
}
```
该程序首先从用户输入中获取底数、指数和模数,然后调用`mod_exp`函数计算底数的指数次幂模模数的结果。函数使用了循环和位运算,对于每一位指数的值,如果为1则将结果乘上底数并对模数取余,然后将指数右移一位。同时,每次循环都将底数平方并对模数取余,以便在下一次循环中使用。最终返回结果。程序输出结果为底数的指数次幂模模数的结果。
阅读全文