题目描述:输入两个正整数m和n,求其最大公约数和最小公倍数。 输入:输入为一行,包括两个数字,以空格隔开。 输出:输入应为两行,第一行为最大公约数,第二行为最小公倍数。
时间: 2023-03-13 09:22:16 浏览: 90
首先,根据输入的两个正整数m和n,可以使用辗转相除法求出它们的最大公约数。即:计算m和n的余数r,若r=0,则n即为最大公约数;若r≠0,则用n除以r,计算出新的余数,继续重复此过程,直到余数为0,即可求得最大公约数。最小公倍数可以通过m*n/最大公约数来求得。
相关问题
python 题目描述:输入两个正整数 m和n,求解并输出给定两个整数的最小公倍数输入格式:在一行中输入两个整数m和n,整数之间用逗号隔开。输出格式:在一行中输出一个整数,即 m 和n的最小公倍数
解题思路:最小公倍数可以用两个数的乘积除以它们的最大公约数求得。
Python代码实现:
```python
m, n = map(int, input().split(',')) # 输入两个数,以逗号分隔
# 求最大公约数
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
lcm = m * n // gcd(m, n) # 求最小公倍数
print(lcm) # 输出最小公倍数
```
输入样例:
```
2,3
```
输出样例:
```
6
```
用C++实现题目描述 输入两个正整数 m和n,求其最大公约数和最小公倍数。 输入格式 输入一行,两个数 m.n,用逗号隔开 输出格式 输出两行,第一行是 m和 n 的最大公约数,第二行是最小公倍数
在C++中,你可以使用欧几里得算法(Euclidean Algorithm)来计算两个正整数的最大公约数(Greatest Common Divisor,简称GCD),然后根据公式 GCD(a, b) * LCM(a, b) = a * b 来计算最小公倍数(Least Common Multiple,简称LCM)。以下是使用C++实现的一个示例:
```cpp
#include <iostream>
using namespace std;
// 计算最大公约数
int gcd(int a, int b) {
if (b == 0)
return a;
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; // 从输入读取m和n
// 输出最大公约数
cout << "最大公约数: " << gcd(m, n) << endl;
// 输出最小公倍数
cout << "最小公倍数: " << lcm(m, n) << endl;
return 0;
}
```
在这个程序中,`gcd`函数递归地调用自身直到找到两个数的最大公约数,而`lcm`函数则是利用了最大公约数来快速计算最小公倍数。
阅读全文