PYTHON(5)输入两个正整数 m 和 n ,求其最大公约数和最小公倍数。提示:在循环中,只要除数不等于 0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为 0,返回较大的数,此数即为最大公约数。最小公倍数为两数之积除以最大公约数。
时间: 2024-03-24 12:41:02 浏览: 103
好的,这个问题可以用 Python 语言来实现,代码如下:
```python
def gcd(m, n):
"""
计算 m 和 n 的最大公约数
"""
while n != 0:
m, n = n, m % n
return m
def lcm(m, n):
"""
计算 m 和 n 的最小公倍数
"""
return m * n // gcd(m, n)
m = int(input("请输入第一个正整数:"))
n = int(input("请输入第二个正整数:"))
print("最大公约数为:", gcd(m, n))
print("最小公倍数为:", lcm(m, n))
```
代码实现的思路是,定义两个函数 gcd 和 lcm 分别用来计算最大公约数和最小公倍数。其中,gcd 函数使用了辗转相除法来计算最大公约数,而 lcm 函数则是通过两数之积除以最大公约数来计算最小公倍数。主程序中,使用 input 函数读入两个正整数 m 和 n,然后调用 gcd 和 lcm 函数计算最大公约数和最小公倍数,最后输出结果即可。
相关问题
输入两个正整数m和n,求其最大公约数和最小公倍数。 输入格式: 请输入第一个正整数 m: 请输入第二个正整数 n: 输出格式: 最大公约数为:4 最小公倍数为:48 输入样例: 12 16 输出样例: 最大公约数为:4 最小公倍数为:48
以下是一个Python的实现代码:
```python
m = int(input("请输入第一个正整数 m:"))
n = int(input("请输入第二个正整数 n:"))
# 求最大公约数
def gcd(x, y):
if y == 0:
return x
else:
return gcd(y, x % y)
# 求最小公倍数
def lcm(x, y):
return x * y // gcd(x, y)
print("最大公约数为:", gcd(m, n))
print("最小公倍数为:", lcm(m, n))
```
运行结果:
```
请输入第一个正整数 m:12
请输入第二个正整数 n:16
最大公约数为: 4
最小公倍数为: 48
```
python:输入两个正整数m和n,求其最大公约数和最小公倍数,最大公约数 最小公倍数。
可以使用辗转相除法求解最大公约数,公式如下:
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
```
阅读全文