计算两个给定正整数 M(M<=1000)和 N(N<=1000)的最大公约数和最小公倍数。
时间: 2024-10-28 08:11:32 浏览: 53
计算两个正整数M和N的最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM),可以使用以下几种方法:
1. **最大公约数**(GCD)可以用欧几里得算法(Euclidean Algorithm)来求解,它基于这样一个性质:对于任意三个正整数a、b和c,若a能整除b,则gcd(a,b) = gcd(b,c),如果a不能整除b,那么gcd(a,b) = gcd(b,a mod b)。
```python
def gcd(a, b):
while b != 0:
a, b = b, a % b
return a
```
2. **最小公倍数**(LCM)与GCD的关系是:两数之积等于它们的最大公约数与最小公倍数的乘积,即 `LCM(a, b) = abs(a * b) / gcd(a, b)`。由于我们已经知道了GCD的值,所以可以直接计算LCLM。
```python
def lcm(a, b):
return a * b // gcd(a, b)
```
举个例子,如果你有两个正整数M和N,你可以先分别计算它们的GCD,然后用这个GCD去乘以较大的那个数来得到LCM。
```python
M = 54
N = 24
gcd_value = gcd(M, N)
lcm_value = lcm(M, N)
print(f"最大公约数(GCD): {gcd_value}")
print(f"最小公倍数(LCM): {lcm_value}")
```
阅读全文