编写函数,接收2个正整数作为参数,求2个数的最大公约数和最小公倍数,结果返回一个元组,其中第一个元素为最大公约数,第二个元素为最小公倍数。Python代码实现与注释
时间: 2024-06-10 19:05:13 浏览: 42
python 输入两个正整数计算最大公约数和最小公倍数 示例
5星 · 资源好评率100%
如下:
```python
def gcd_lcm(num1, num2):
"""
计算2个正整数的最大公约数和最小公倍数,并返回结果的元组
:param num1: 正整数1
:param num2: 正整数2
:return: (最大公约数, 最小公倍数)
"""
# 辗转相除法求最大公约数
a, b = max(num1, num2), min(num1, num2)
while b != 0:
r = a % b
a = b
b = r
# 最小公倍数为2数之积除以最大公约数
return (a, num1 * num2 // a)
# 测试函数
print(gcd_lcm(12, 18)) # 应该输出 (6, 36)
```
注:上面使用了辗转相除法来求最大公约数,此算法的正确性可以参见维基百科的介绍。最小公倍数等于2个数的积除以最大公约数的原理也很容易理解。
阅读全文