用Python编写一个函数,从键盘上输入两个数,求最大公约数和最小公倍数,如果输入的第一个数小于第二个数时,需要交换如:输入16,24调用函数显示8, 48
时间: 2024-10-25 19:03:58 浏览: 25
在Python中,你可以使用欧几里得算法(Euclidean algorithm)来计算两个数的最大公约数(GCD),然后利用GCD来计算最小公倍数(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(x, y):
lcm_num = abs(x * y) // euclidean_gcd(x, y)
return lcm_num if a <= b else lcm_num // a * a # 如果a小于b,先调整a到较大值再计算
a, b = int(input("请输入两个数(第一个数将自动调整为较大的): ")), int(input())
if a < b:
a, b = b, a # 交换数值以保证a总是较大的
gcd_val = euclidean_gcd(a, b)
lcm_val = lcm(a, b)
print(f"最大公约数(GCD): {gcd_val}")
print(f"最小公倍数(LCM): {lcm_val}")
# 调用函数
gcd_lcm()
```
当你运行这个程序并输入16和24时,它会输出8(最大公约数)和48(最小公倍数)。
阅读全文