用while或者do…while输入两个整数m和n,求其最大公约数和最小公倍数
时间: 2024-10-23 12:08:02 浏览: 33
求最大公约数和最小公倍数
当你想用`while`或`do...while`循环求两个整数m和n的最大公约数(GCD,Greatest Common Divisor)和最小公倍数(LCM,Least Common Multiple),你可以遵循以下步骤:
1. **计算最大公约数**(GCD):
- 使用欧几里得算法(Euclidean algorithm):对于两个非零整数a和b,最大公约数等于b和a除以b的余数的最大公约数。
```python
def gcd(m, n):
while n != 0:
m, n = n, m % n
return m
```
2. **计算最小公倍数**(LCM):
- LCM可以通过以下公式计算,因为 GCD × LCM = a × b (其中a和b是原始的两个数):
```
lcm = (m * n) // gcd(m, n)
```
将这两个函数结合起来,可以创建一个循环来接收用户输入的m和n,并计算它们的GCD和LCM:
```python
# 获取用户输入
m = int(input("请输入第一个整数m: "))
n = int(input("请输入第二个整数n: "))
# 计算GCD和LCM
gcd_value = gcd(m, n)
lcm_value = (m * n) // gcd_value
# 输出结果
print(f"最大公约数(GCD)是: {gcd_value}")
print(f"最小公倍数(LCM)是: {lcm_value}")
```
阅读全文