c语言判断两个整数是否互质
时间: 2024-11-22 18:43:54 浏览: 71
在C语言中,判断两个整数是否互质(即最大公约数为1),可以使用辗转相除法(也称欧几里得算法)。以下是简单的步骤:
1. 定义函数gcd(int a, int b),用于计算两数的最大公约数。
2. 使用while循环,当b不等于0时,将a赋值给b,然后把原来的b%a的余数赋值给a。
3. 当b变为0时,a就是两数的最大公约数。如果a等于1,那么原数a和b互质。
下面是一个简单的示例代码片段:
```c
#include <stdio.h>
// 计算最大公约数的函数
int gcd(int a, int b) {
while (b != 0) {
int temp = a % b;
a = b;
b = temp;
}
return a;
}
// 判断两个数是否互质
int are_coprime(int num1, int num2) {
if (gcd(num1, num2) == 1)
return 1; // 返回1表示互质,0表示不互质
else
return 0;
}
int main() {
int num1, num2;
printf("请输入两个整数:");
scanf("%d %d", &num1, &num2);
if (are_coprime(num1, num2))
printf("%d 和 %d 是互质的。\n", num1, num2);
else
printf("%d 和 %d 不是互质的。\n", num1, num2);
return 0;
}
```
阅读全文