c++求是否两个数互质
时间: 2024-05-10 22:18:23 浏览: 201
判断两个数是否互质的方法是求它们的最大公约数(GCD)是否为1。以下是C++代码实现:
```c++
#include <iostream>
using namespace std;
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
bool isCoPrime(int a, int b) {
return gcd(a, b) == 1;
}
int main() {
int a, b;
cout << "Enter two integers: ";
cin >> a >> b;
if (isCoPrime(a, b))
cout << a << " and " << b << " are co-prime" << endl;
else
cout << a << " and " << b << " are not co-prime" << endl;
return 0;
}
```
在这个程序中,我们首先定义了一个计算最大公约数的函数`gcd`。然后使用`isCoPrime`函数判断两个数是否互质,如果它们的最大公约数为1,则返回true,否则返回false。最后在main函数中,我们输入两个整数并调用`isCoPrime`函数来判断它们是否互质。
相关问题
请用c++写一个判断两个数是否互质的程序
#include <stdio.h>
// 计算最大公约数
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
int main() {
int a, b;
printf("请输入两个整数:");
scanf("%d%d", &a, &b);
if (gcd(a, b) == 1) {
printf("%d和%d是互质的\n", a, b);
} else {
printf("%d和%d不是互质的\n", a, b);
}
return 0;
}
c++判断是否互质代码
在C++中,判断两个整数是否互质(即最大公约数为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; // 如果gcd等于1,则两数互质
}
int main() {
int num1, num2;
cout << "请输入两个整数:";
cin >> num1 >> num2;
if (are_coprime(num1, num2)) {
cout << num1 << " 和 " << num2 << " 是互质的。" << endl;
} else {
cout << num1 << " 和 " << num2 << " 不是互质的。" << endl;
}
return 0;
}
```
在这个代码中,`gcd`函数递归地计算两个数的最大公约数,然后`are_coprime`函数检查这两个数的gcd是否为1,如果为1则返回`true`,表示它们互质。
阅读全文