c语言编写函数,判断两个正整数 m 和 n 是否为互质数。若是,返回 1;否则,返回 -1。 主函数中调用该编写函数,并按要求输出结果。 互质数:最大公约数为 1 的两个数称为互质数 测试举例 输入:2 3 输出:2和3是互质数 输入:38 24 输出:38和24不是互质数
时间: 2025-06-21 12:26:57 浏览: 11
### C语言实现判断两正整数是否为互质数
为了实现一个用于判断两个正整数是否为互质数的函数,在C语言中可以采用求最大公约数的方法。当两个数的最大公约数为1时,则这两个数是互质的。
#### 定义 `gcd` 函数计算最大公约数
```c
int gcd(int a, int b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
```
此段代码实现了欧几里得算法来查找两个非负整数a和b的最大公约数[^1]。
#### 编写 `is_coprime` 函数判定互质关系
基于上述`gcd`函数,下面定义了一个名为`is_coprime`的新函数用来检测两个给定的正整数m和n之间是否存在互质的关系:
```c
#include <stdio.h>
// 假设已经包含了上面提到的gcd函数定义...
int is_coprime(int m, int n){
return gcd(m,n)==1 ? 1 : 0 ;
}
```
这里利用三元操作符简化了逻辑表达式,如果`gcd(m,n)`的结果等于1就返回真(即1),否则返回假(即0)。
#### 构建主程序并测试功能
最后一步是在main函数内编写一些简单的测试用例来进行验证:
```c
int main(){
printf("Testing coprimes...\n");
// Test Case 1
if(is_coprime(8,9)){
printf("8 and 9 are co-prime.\n");
}else{
printf("8 and 9 aren't co-prime.\n");
}
// Test Case 2
if(is_coprime(7,14)){
printf("7 and 14 are co-prime.\n");
}else{
printf("7 and 14 aren't co-prime.\n");
}
return 0;
}
```
这段完整的程序展示了如何创建一个实用工具来检查任意一对正整数之间的互质性质,并提供了具体的例子供读者理解其工作原理。
阅读全文
相关推荐

















