最大公约数和最小公倍数 编写一个函数,从键盘上输入两个数,求最大公约数和最小公倍数,如果输入的第一个数小于第二个数时,需要交换 实验要求: 如:输入16,24 调用函数显示8,48给出实验完整代码
时间: 2024-10-15 22:14:06 浏览: 40
最大公约数(Greatest Common Divisor,简称GCD)是指两个或多个整数共有约数中最大的一个。而最小公倍数(Least Common Multiple,简称LCM)则是这些整数共有的最小正整数倍数。
对于给定的两个数a和b,求最大公约数可以通过辗转相除法(欧几里得算法)来计算,直到余数为0,此时除数就是最大公约数。而对于最小公倍数,有公式:
\[ LCM(a, b) = \frac{|a \times b|}{GCD(a, b)} \]
当第一个数小于第二个数时,我们需要交换它们的位置以保证正确执行算法。以下是一个使用Python编写的函数,实现了这个功能并求解最大公约数和最小公倍数:
```python
def gcd_lcm():
# 输入两个数字
a = int(input("请输入第一个数: "))
b = int(input("请输入第二个数: "))
# 检查第一个数是否小于第二个数,如果是则交换
if a < b:
a, b = b, a
# 辗转相除法计算最大公约数
def euclidean_algorithm(x, y):
while(y):
x, y = y, x % y
return x
gcd = euclidean_algorithm(a, b)
# 计算最小公倍数
lcm = abs(a * b) // gcd
print(f"最大公约数 (GCD): {gcd}")
print(f"最小公倍数 (LCM): {lcm}")
# 调用函数
gcd_lcm()
```
阅读全文