编程实现模重复平方法的算法C语言
时间: 2023-05-30 21:05:57 浏览: 148
模重复平方算法 C语言
5星 · 资源好评率100%
以下是一个简单的C语言代码实现模重复平方法的算法:
```
#include <stdio.h>
int modular_exponentiation(int base, int exponent, int modulus)
{
int result = 1;
base = base % modulus;
while (exponent > 0)
{
if (exponent % 2 == 1)
{
result = (result * base) % modulus;
}
exponent = exponent / 2;
base = (base * base) % modulus;
}
return result;
}
int main()
{
int base, exponent, modulus;
printf("Enter base, exponent, and modulus: ");
scanf("%d %d %d", &base, &exponent, &modulus);
int result = modular_exponentiation(base, exponent, modulus);
printf("%d^%d mod %d = %d", base, exponent, modulus, result);
return 0;
}
```
该程序首先定义了一个名为`modular_exponentiation`的函数,接受三个整数参数:`base`,`exponent`,和`modulus`。该函数返回`base^exponent mod modulus`的值。
在主函数中,程序提示用户输入三个整数,并调用`modular_exponentiation`函数计算结果。最后,程序输出计算结果。
该算法的时间复杂度为O(log n)。
阅读全文