模余运算快速算法具体完整代码C语言
时间: 2023-07-18 07:44:03 浏览: 145
以下是模余运算快速算法的完整C语言代码实现:
```c
#include <stdio.h>
// 计算a的k次幂关于n的余数
int modPower(int a, int k, int n) {
int result = 1;
while (k > 0) {
if (k % 2 == 1) {
result = (result * a) % n;
}
a = (a * a) % n;
k /= 2;
}
return result;
}
// 计算a关于p的逆元
int modInverse(int a, int p) {
if (a % p == 0) {
return 0;
}
return modPower(a, p-2, p);
}
// 计算a mod n的值
int mod(int a, int n) {
int inverse = modInverse(a, n);
return (inverse * a) % n;
}
int main() {
int a = 10;
int n = 3;
int result = mod(a, n);
printf("%d mod %d = %d\n", a, n, result); // 输出10 mod 3 = 1
return 0;
}
```
在这个程序中,我们先定义了三个函数:modPower、modInverse和mod。modPower函数计算a的k次幂关于n的余数,modInverse函数计算a关于p的逆元,mod函数计算a mod n的值。
在主函数中,我们调用mod函数来计算10 mod 3的值,并将结果输出到控制台上。
阅读全文