使用DEV C++生成输入两个正整数m和n,求其最大公约数和最小公倍数。 输入 两个整数 输出 最大公约数,最小公倍数 样例输入 5 7 样例输出 1 35
时间: 2024-02-09 17:08:47 浏览: 108
好的,我可以给你提供一个 C++ 的实现,使用辗转相除法求最大公约数,使用两数乘积除以最大公约数求最小公倍数。下面是代码实现:
```c++
#include <iostream>
using namespace std;
// 求最大公约数
int gcd(int a, int b) {
if (a % b == 0) {
return b;
} else {
return gcd(b, a % b);
}
}
// 求最小公倍数
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
int main() {
int m, n;
cin >> m >> n;
cout << gcd(m, n) << " " << lcm(m, n) << endl;
return 0;
}
```
你可以在 DEV C++ 中编译并运行这段代码,获得和 Python 版本相同的结果。
相关问题
在dev++环境写出代码,输入两个整数m和n,求出最大公约数和最小公倍数
在Dev-C++环境中,你可以使用欧几里得算法(辗转相除法)来计算两个整数的最大公约数(Greatest Common Divisor, GCD),然后用这两个数的乘积除以它们的最大公约数得到最小公倍数(Least Common Multiple, LCM)。下面是相应的C语言代码:
```c
#include <stdio0.h>
// 定义函数求最大公约数
int gcd(int m, int n) {
if (n == 0)
return m;
else
return gcd(n, m % n);
}
// 计算最小公倍数
int lcm(int m, int n) {
return (m * n) / gcd(m, n);
}
int main() {
int m, n;
// 输入两个整数
printf("Enter two integers: ");
scanf("%d %d", &m, &n);
// 输出最大公约数
printf("GCD of %d and %d is: %d\n", m, n, gcd(m, n));
// 输出最小公倍数
printf("LCM of %d and %d is: %d\n", m, n, lcm(m, n));
return 0;
}
```
帮我写代码,在dev++中 输入两个正整数,求他们的最大公约数和最小公倍数
在Dev-C++环境中编写代码来计算两个正整数的最大公约数(GCD)和最小公倍数(LCM),可以使用欧几里得算法来找到GCD,然后通过GCD和其中一个数来计算LCM。下面是一个简单的示例:
```cpp
#include <iostream>
using namespace std;
// Function to find the greatest common divisor (GCD)
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
// Function to find the least common multiple (LCM)
int lcm(int a, int b) {
return (a * b) / gcd(a, b);
}
int main() {
int num1, num2;
// 输入两个正整数
cout << "请输入第一个正整数: ";
cin >> num1;
cout << "请输入第二个正整数: ";
cin >> num2;
// 检查输入是否为正整数
if (num1 > 0 && num2 > 0) {
// 计算GCD和LCM
int result_gcd = gcd(num1, num2);
int result_lcm = lcm(num1, num2);
// 输出结果
cout << "这两个数的最大公约数(GCD): " << result_gcd << endl;
cout << "这两个数的最小公倍数(LCM): " << result_lcm << endl;
} else {
cout << "输入的数字必须是非负整数。" << endl;
}
return 0;
}
```
阅读全文