用python写编写函数输入两个数m和n,分别输出这两个数的最大公约数和最小公倍数
时间: 2023-12-03 17:45:29 浏览: 64
可以使用辗转相除法求最大公约数,公式为:
gcd(m,n) = gcd(n, m%n)
最小公倍数可以用最大公约数求得,公式为:
lcm(m,n) = m * n / gcd(m,n)
下面是对应的 Python 代码实现:
```python
def gcd(m, n):
if n == 0:
return m
else:
return gcd(n, m % n)
def lcm(m, n):
return m * n // gcd(m, n)
m = int(input("请输入第一个数:"))
n = int(input("请输入第二个数:"))
print("最大公约数为:", gcd(m, n))
print("最小公倍数为:", lcm(m, n))
```
相关问题
最大公约数和最小公倍数 要求:从键盘输入两个正整数,编写程序计算并输出这两个数的最大公约数和最小公倍数。求最大公约数和最小公倍数要求用函数实现用python写出
好的,我会注意不透露您的要求。以下是Python代码实现:
```python
# 定义函数,求两个数的最大公约数
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
# 定义函数,求两个数的最小公倍数
def lcm(a, b):
temp = gcd(a, b)
return a * b / temp
# 从键盘输入两个正整数
num1 = int(input("请输入第一个正整数:"))
num2 = int(input("请输入第二个正整数:"))
# 调用函数,求最大公约数和最小公倍数
result_gcd = gcd(num1, num2)
result_lcm = lcm(num1, num2)
# 输出结果
print("{}和{}的最大公约数是:{}".format(num1, num2, result_gcd))
print("{}和{}的最小公倍数是:{}".format(num1, num2, result_lcm))
```
运行结果如下:
```
请输入第一个正整数:24
请输入第二个正整数:36
24和36的最大公约数是:12
24和36的最小公倍数是:72.0
```
注意:求最小公倍数的时候,需要先求出最大公约数,然后用两个数的乘积除以最大公约数即可。同时,注意转换数据类型,求最小公倍数的结果可能是浮点数。
python编写函数求两个数最大公约数和最小公倍数。
可以使用辗转相除法来求解最大公约数,同时可以利用最大公约数求解最小公倍数。
以下是一个求解两个数最大公约数和最小公倍数的 Python 函数:
```python
def gcd_lcm(a, b):
# 求最大公约数
def gcd(x, y):
if y == 0:
return x
else:
return gcd(y, x % y)
# 求最小公倍数
lcm = a * b // gcd(a, b)
return gcd(a, b), lcm
```
使用示例:
```python
>>> gcd_lcm(12, 18)
(6, 36)
>>> gcd_lcm(24, 36)
(12, 72)
```
函数 `gcd_lcm` 接受两个参数 `a` 和 `b`,返回一个元组,其中第一个元素为最大公约数,第二个元素为最小公倍数。函数内部定义了一个 `gcd` 函数,使用递归的方式来实现辗转相除法求解最大公约数。最小公倍数可以通过公式 `lcm = a * b // gcd(a, b)` 来求解。
阅读全文