用python编写函数,接收两个正整数作为参数,返回两个数,其中第一个数为最大公约数,第二个数为最小公倍数
时间: 2024-02-28 15:52:06 浏览: 164
可以使用辗转相除法求最大公约数,两数相乘除以最大公约数可以求得最小公倍数。以下是对应的 Python 代码:
```python
def gcd_lcm(num1, num2):
# 求最大公约数
a, b = num1, num2
while b:
a, b = b, a % b
gcd = a
# 求最小公倍数
lcm = num1 * num2 // gcd
return gcd, lcm
```
调用方式为 `gcd, lcm = gcd_lcm(num1, num2)`,其中 `num1` 和 `num2` 分别为两个正整数,`gcd` 和 `lcm` 分别为最大公约数和最小公倍数。
相关问题
python编写函数接受两个正整数作为参数返回一个元组其中第一个元素为最大公约数第二个元素为最小公倍数
在Python中,你可以编写一个名为`gcd_lcm`的函数,用于计算两个正整数的最大公约数(Greatest Common Divisor,通常用`math.gcd`函数直接获取)和最小公倍数(Least Common Multiple,可以利用公式 `lcm(a, b) = abs(a * b) // math.gcd(a, b)` 来计算)。以下是这个函数的示例:
```python
import math
def gcd_lcm(num1, num2):
def lcm(a, b):
return abs(a * b) // math.gcd(a, b)
gcd_value = math.gcd(num1, num2)
lcm_value = lcm(num1, num2)
return (gcd_value, lcm_value)
# 测试函数
result = gcd_lcm(48, 18)
print(f"最大公约数:{result[0]}, 最小公倍数:{result[1]}")
```
在这个函数中,首先导入了`math`模块以使用`gcd`函数。然后定义了一个内部函数`lcm`来计算两个数的最小公倍数。外部函数`gcd_lcm`接收两个参数,计算它们的GCD和LCM,并将结果作为一个包含两个元素的元组返回。
python编写函数,接收两个正整数作为参数,返回一个元组,其中第一个元素为最大公倍数,第二个为最小公约数
下面是一个实现这个功能的 Python 函数:
```python
def gcd(a, b):
"""
计算两个正整数的最大公约数
"""
if b == 0:
return a
else:
return gcd(b, a % b)
def lcm(a, b):
"""
计算两个正整数的最小公倍数
"""
return a * b // gcd(a, b)
def gcd_lcm(a, b):
"""
接收两个正整数作为参数,返回一个元组,其中第一个元素为最大公倍数,第二个为最小公约数
"""
return lcm(a, b), gcd(a, b)
```
我们首先定义了一个计算最大公约数的函数 `gcd()`,然后再定义一个计算最小公倍数的函数 `lcm()`,这两个函数都采用了递归算法来计算。
最后,我们定义了一个名为 `gcd_lcm()` 的函数,它接收两个正整数作为参数,然后返回一个元组,其中第一个元素为最大公倍数,第二个为最小公约数。这个函数内部调用了 `lcm()` 和 `gcd()` 函数来计算结果。
我们可以这样使用这个函数:
```python
>>> gcd_lcm(12, 18)
(36, 6)
```
这表示 12 和 18 的最小公倍数是 36,最大公约数是 6。
阅读全文