编写一个求两个整数a和b的最大公约数和最小公倍数
时间: 2024-12-16 19:22:27 浏览: 17
计算两个整数a和b的最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM),可以使用欧几里得算法(辗转相除法)来找到GCD,然后利用GCD和乘积ab的关系来计算LCM。以下是步骤:
1. **最大公约数(GCD)**:
- 通过循环,将较大的数除以较小的数,得到余数r。
- 如果余数r为0,则较小的数就是两者的GCD;如果余数不为0,那么较大的数就变成原来的除数,较小的数变成余数,继续这个过程,直到余数为0。
2. **最小公倍数(LCM)**:
- 首先计算a和b的乘积(即ab)。
- 然后用GCD的结果去除这个乘积,因为GCD(a, b) * LCM(a, b) = a * b。
- 最终结果就是a和b的乘积除以它们的GCD,即LCM = (a * b) / GCD(a, b).
这里是一个简单的Python代码示例:
```python
def gcd(a, b):
while b != 0:
a, b = b, a % b
return a
def lcm(a, b):
return (a * b) // gcd(a, b)
# 示例
a = 48
b = 18
gcd_value = gcd(a, b)
lcm_value = lcm(a, b)
print("GCD of", a, "and", b, "is:", gcd_value)
print("LCM of", a, "and", b, "is:", lcm_value)
```
运行这段代码会输出a和b的最大公约数以及最小公倍数。
阅读全文