python:输入两个正整数m和n,求其最大公约数和最小公倍数,最大公约数 最小公倍数。
时间: 2023-11-03 08:00:37 浏览: 164
可以使用辗转相除法求解最大公约数,公式如下:
gcd(m, n) = gcd(n, m % n) (m > n)
当 m % n = 0 时,n 即为最大公约数。
最小公倍数可以使用以下公式求解:
lcm(m, n) = m * n / gcd(m, n)
下面是 Python 代码实现:
```python
m = int(input("请输入第一个正整数:"))
n = int(input("请输入第二个正整数:"))
# 求最大公约数
def gcd(m, n):
if m < n:
m, n = n, m
while n != 0:
r = m % n
m = n
n = r
return m
# 求最小公倍数
def lcm(m, n):
return m * n // gcd(m, n)
print("最大公约数为:", gcd(m, n))
print("最小公倍数为:", lcm(m, n))
```
运行结果:
```
请输入第一个正整数:24
请输入第二个正整数:36
最大公约数为: 12
最小公倍数为: 72
```
相关问题
题目内容:输入两个正整数m和n,求其最大公约数和最小公倍数。 输入格式: 10,6 输出样例: 请输入两个正整数n,m: 它们的最大公约数为:2 它们的最小公倍数为:30
题目要求你编写一个程序,给定两个正整数`m`和`n`,你需要计算这两个数的最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM)。最大公约数通常是通过欧几里得算法(Euclidean Algorithm)来找到的,而最小公倍数可以用公式`LCM(a, b) = abs(a * b) / GCD(a, b)`来计算。
以下是使用Python的一个简单实现:
```python
def gcd(m, n):
while n != 0:
m, n = n, m % n
return m
def lcm(m, n):
return (m * n) // gcd(m, n)
m, n = map(int, input("请输入两个正整数n,m: ").split(','))
gcd_val = gcd(m, n)
lcm_val = lcm(m, n)
print(f"它们的最大公约数为: {gcd_val}")
print(f"它们的最小公倍数为: {lcm_val}")
```
当你运行这个程序并输入`10,6`时,它会输出最大公约数为2,最小公倍数为30,就像给出的输出样例一样。
//编程14:输入两个正整数m和n,求最大公约数和最小公倍数。
在编程中,计算两个正整数的最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM)是一个常见的数学问题。这两个值对于理解两个数之间的关系非常重要。以下是使用欧几里得算法(Euclidean Algorithm)求最大公约数的基本步骤:
**求最大公约数 (GCD):**
1. 如果 `n` 等于 0,则 `m` 就是 GCD,因为任何数除以0都是未定义的。
2. 否则,将 `m` 和 `n` 中的较小值赋给 `n`,较大的值赋给 `m`。
3. 重复步骤1和2,直到 `n` 变为 0。
**求最小公倍数 (LCM):**
1. 首先,计算两数的最大公约数(已经通过上述方法得到)。
2. 最小公倍数等于两数乘积除以它们的最大公约数。
如果你需要具体的代码示例,这里是一个简单的Python版本:
```python
def gcd(m, n):
while n != 0:
m, n = n, m % n
return m
def lcm(m, n):
return m * n // gcd(m, n)
# 输入两个正整数
m = int(input("请输入第一个正整数m: "))
n = int(input("请输入第二个正整数n: "))
gcd_val = gcd(m, n)
lcm_val = lcm(m, n)
print(f"最大公约数 (GCD): {gcd_val}")
print(f"最小公倍数 (LCM): {lcm_val}")
阅读全文