练习一:编写并调用函数,函数功能为:接收两个正整数作为参数,返回一个元组,其中第一个元素为最大公约数,第二个元素为最小公倍数。
时间: 2024-12-19 10:18:55 浏览: 22
练习一的目标是创建一个Python函数,该函数接受两个正整数作为输入,计算它们的最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM)。以下是实现这个功能的一个示例:
```python
def gcd_lcm(a, b):
# 计算最大公约数 (欧几里得算法)
def euclidean_gcd(x, y):
while(y):
x, y = y, x % y
return x
# 根据公式 lcm(a, b) = |a * b| / gcd(a, b) 计算最小公倍数
def lcm_two_numbers(x, y):
lcm = abs(x*y) // euclidean_gcd(x, y)
return lcm
return euclidean_gcd(a, b), lcm_two_numbers(a, b)
# 调用函数,传入任意两个正整数
num1 = int(input("请输入第一个正整数:"))
num2 = int(input("请输入第二个正整数:"))
gcd, lcm = gcd_lcm(num1, num2)
print(f"最大公约数 ({num1}, {num2}) 是:{gcd}")
print(f"最小公倍数 ({num1}, {num2}) 是:{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。
用python回答编写函数,接收两个正整数作为参数,返回一个元组,其中第一个元素为最大公约数,第二个元素为最小公倍数
好的,下面是用 Python 编写的函数,可以实现你提出的要求:
```python
def gcd_lcm(a, b):
"""
计算两个正整数的最大公约数和最小公倍数
:param a: 正整数
:param b: 正整数
:return: 一个元组,其中第一个元素为最大公约数,第二个元素为最小公倍数
"""
# 计算最大公约数
c, d = max(a, b), min(a, b)
while d != 0:
c, d = d, c % d
# 计算最小公倍数
lcm = a * b // c
return c, lcm
```
你可以调用这个函数,例如:`gcd_lcm(12, 18)`,它将返回 `(6, 36)` 这个元组,其中 6 是 12 和 18 的最大公约数,36 是它们的最小公倍数。
阅读全文