编写函数,接收两个正整数作为参数,返回一个元组,其中第一 个元素为最大公约数,第二个元素为最小公倍数,附带结果
时间: 2024-10-09 12:04:45 浏览: 36
数学建模中常用的30个MATLAB程序和函数.pdf
编写这样的函数,你可以利用辗转相除法(欧几里得算法)来计算最大公约数(GCD),然后利用公式 `lcm(a, b) = |a * b| / gcd(a, b)` 来计算最小公倍数(LCM)。下面是一个Python示例:
```python
def gcd_lcm(a, b):
def euclidean_gcd(x, y):
while(y):
x, y = y, x % y
return x
def lcm_two_numbers(x, y):
return abs(x * y) // euclidean_gcd(x, y)
if a == 0 and b == 0:
raise ValueError("Input cannot be both zero")
elif a == 0:
return (b, 0)
elif b == 0:
return (a, 0)
else:
return (euclidean_gcd(a, b), lcm_two_numbers(a, b))
# 示例用法
result = gcd_lcm(48, 18)
print(f"最大公约数:{result[0]}, 最小公倍数:{result[1]}")
阅读全文