编写函数,接收两个正整数作为参数,返回一个元组,其中第一个元素为两个正整数的最大公约数,第二个元素为其最小公倍数,输出最大公约数和最小公偕数,解释一下辗转相除法的代码
时间: 2024-11-25 10:09:49 浏览: 19
当然,我可以帮你理解如何编写这样的函数,并利用辗转相除法(也叫欧几里得算法)来计算最大公约数(GCD)和最小公倍数(LCM)。辗转相除法的基本原理是基于这样一个事实:对于任意两个正整数a和b,它们的最大公约数等于a除以b的余数c和b之间的最大公约数。
以下是Python代码示例:
```python
def gcd_lcm(a, b):
# 辗转相除法求最大公约数
def euclidean_gcd(m, n):
while n != 0:
m, n = n, m % n
return m
# 根据最大公约数计算最小公倍数
def lcm(m, n):
return (m * n) // euclidean_gcd(m, n)
# 计算并返回结果
gcd_result = euclidean_gcd(a, b)
lcm_result = lcm(a, b)
return (gcd_result, lcm_result)
# 测试函数
num1 = 48
num2 = 18
result = gcd_lcm(num1, num2)
print(f"最大公约数({num1}, {num2}) = {result[0]}")
print(f"最小公倍数({num1}, {num2}) = {result[1]}")
阅读全文