模指数二进制算法c语言实现
时间: 2024-10-12 07:02:10 浏览: 37
模指数二进制算法(Modular Exponentiation),也称为快速幂运算,是一种计算大整数乘方的高效算法,尤其在密码学和计算机科学中有广泛应用,比如RSA加密。在C语言中,可以使用循环或递归来实现。以下是基本的循环版本:
```c
#include <stdio.h>
// 计算a^b mod m的值
int power(int a, int b, int m) {
if (b == 0) return 1; // 如果指数为0,结果为1
int res = power(a, b / 2, m); // 递归将b除以2
res = (res * res) % m; // 对半的结果自乘
if (b % 2 != 0) // 如果b为奇数
res = (res * a) % m; // 再乘以原始数值
return res;
}
int main() {
int base = 5, exponent = 1000, modulus = 1000000007;
printf("Result: %d\n", power(base, exponent, modulus));
return 0;
}
```
阅读全文