使用while 循环求最大公约数和最小公倍数
时间: 2024-09-09 10:03:28 浏览: 145
使用while循环求最大公约数(GCD)和最小公倍数(LCM)的基本思路是这样的:
1. **最大公约数(GCD)**:首先我们需要知道计算两个数A和B的最大公约数的一个算法,比如欧几里得算法。欧几里得算法基于这样一个事实:两个整数的最大公约数与它们的差的最大公约数相同。因此,我们可以不断将较大的数用两数之差代替,直到两数相等,那个数就是它们的最大公约数。
使用while循环实现最大公约数的代码示例如下:
```python
def gcd(a, b):
while b:
a, b = b, a % b
return a
# 示例
num1 = 48
num2 = 18
print(f"{num1} 和 {num2} 的最大公约数是:", gcd(num1, num2))
```
2. **最小公倍数(LCM)**:两个数的最小公倍数可以通过它们的乘积除以它们的最大公约数来获得。
使用while循环实现最小公倍数的代码示例如下:
```python
def lcm(a, b):
return a * b // gcd(a, b)
# 示例
num1 = 48
num2 = 18
print(f"{num1} 和 {num2} 的最小公倍数是:", lcm(num1, num2))
```
在这段代码中,`gcd` 函数是计算最大公约数的函数,我们使用了一个while循环来实现欧几里得算法,直到 `b` 变为0,此时的 `a` 就是最大公约数。然后 `lcm` 函数通过调用 `gcd` 函数得到最大公约数,并计算两数乘积与最大公约数的商,得到最小公倍数。
阅读全文