如何用C++编写一个函数来检查两个正整数是否为互质数?
时间: 2024-11-15 18:27:41 浏览: 4
cpp代码-给定两个数,求这两个数的最大公约数
在C++中,我们可以使用欧几里得算法(Euclidean algorithm)来检查两个正整数是否互质。互质数是指除了1以外没有其他公因数的两个数。下面是一个简单的函数示例:
```cpp
#include <iostream>
using namespace std;
// 欧几里得算法计算最大公约数
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
// 判断两个数是否互质
bool are_coprime(int num1, int num2) {
return gcd(num1, num2) == 1;
}
int main() {
int num1, num2;
cout << "请输入两个正整数: ";
cin >> num1 >> num2;
if(are_coprime(num1, num2))
cout << num1 << " 和 " << num2 << " 是互质数.\n";
else
cout << num1 << " 和 " << num2 << " 不是互质数.\n";
return 0;
}
```
在这个例子中,`gcd()` 函数用于计算两个数的最大公约数,如果结果等于1,则它们互质。在`main()`函数中,用户输入两个数,然后调用`are_coprime()`函数判断并输出结果。
阅读全文