利用Python写最大公约数和最小公倍数
时间: 2023-10-11 10:17:22 浏览: 87
可以使用辗转相除法来计算最大公约数,使用两个数的乘积除以最大公约数即可得到最小公倍数。
以下是Python代码实现:
```python
def gcd(a,b):
if b==0:
return a
else:
return gcd(b,a%b)
def lcm(a,b):
return a*b//gcd(a,b)
```
其中,`gcd(a,b)`函数计算a和b的最大公约数,`lcm(a,b)`函数计算a和b的最小公倍数。
相关问题
python算最大公约数和最小公倍数
在Python中,计算两个数的最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM)有多种方法。这里提供两种常用的算法:
**1. 最大公约数(GCD)**
使用math库中的gcd函数可以直接求得两个数的最大公约数:
```python
import math
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
a = 48
b = 18
print("The GCD of", a, "and", b, "is", gcd(a, b))
```
如果需要自定义算法,欧几里得算法是一种经典的方法:
```python
def gcd_custom(a, b):
while b != 0:
a, b = b, a % b
return a
print(gcd_custom(48, 18))
```
**2. 最小公倍数(LCM)**
通常可以用最大公约数来计算最小公倍数,因为两个数的乘积等于它们的最大公约数和最小公倍数的乘积:
```python
def lcm(a, b):
return (a * b) // gcd(a, b)
print("The LCM of", a, "and", b, "is", lcm(a, b))
```
或者也可以先求出较大的那个数,然后取两者乘积除以较小的那个数:
```python
def lcm_alternative(a, b):
larger_num = max(a, b)
return larger_num * abs(a / gcd_custom(a, b)) if a != b else larger_num
print(lcm_alternative(48, 18))
```
以上就是Python中计算最大公约数和最小公倍数的基本方法。
python求最大公约数和最小公倍数自己写函数
可以使用辗转相除法求最大公约数,利用最大公约数求最小公倍数。
以下是Python代码示例:
```python
# 求最大公约数
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
# 求最小公倍数
def lcm(a, b):
return a * b // gcd(a, b)
# 测试
a = 12
b = 18
print("最大公约数:", gcd(a, b))
print("最小公倍数:", lcm(a, b))
```
输出结果为:
```
最大公约数: 6
最小公倍数: 36
```
阅读全文