求最大公约数(GCD)和最小公倍数(LCM)的方法有多种,以下是一些常见的方法:
质因数分解法
将两个整数分别分解成质因数的乘积形式。
找出它们共有的质因数,并将这些质因数相乘,所得的积就是最大公约数。
将两个整数的所有质因数相乘,所得的积除以最大公约数,就是最小公倍数。
辗转相除法(欧几里德算法)
利用两个整数的最大公约数等于其中较小的那个数和两数取模的最大公约数这一性质。
具体步骤是:用较大数除以较小数,得到余数;如果余数为0,算法结束,较小数即为最大公约数;如果余数不为0,用较小数除以余数,重复上述步骤。
更相减损法
利用两个整数的最大公约数等于其中较小的那个数和两数相减的差的最大公约数这一性质。
具体步骤是:比较两个数的大小,用较大数减去较小数,得到差;如果差为0,算法结束,两个数相等,它们本身就是最大公约数;如果差不为0,用较小数和差比较大小,重复上述步骤。
直接利用最大公约数求最小公倍数
已知两个数的最大公约数为GCD,最小公倍数为LCM,则有公式:a * b = GCD * LCM。
因此,可以用两数相乘后除以最大公约数的方法求出最小公倍数。
示例代码
```python
def gcd(a, b):
while b:
a, b = b, a % b
return a
示例
a = 48
b = 18
print(f"最大公约数: {gcd(a, b)}")
```
```python
def lcm(a, b):
return a * b // gcd(a, b)
示例
a = 48
b = 18
print(f"最小公倍数: {lcm(a, b)}")
```
这些方法各有优缺点,质因数分解法适用于质数较多且需要深入了解质因数分布的情况,辗转相除法和更相减损法在计算上更为高效,适用于大多数情况。