python最大公约数,最小公倍数
时间: 2024-03-05 09:46:48 浏览: 228
在Python中,可以使用math模块中的gcd函数来计算最大公约数,使用lcm函数来计算最小公倍数。
最大公约数(Greatest Common Divisor,简称GCD)是指能够同时整除两个或多个整数的最大正整数。而最小公倍数(Least Common Multiple,简称LCM)是指能够同时被两个或多个整数整除的最小正整数。
下面是使用math模块计算最大公约数和最小公倍数的示例代码:
```python
import math
# 计算最大公约数
def gcd(a, b):
return math.gcd(a, b)
# 计算最小公倍数
def lcm(a, b):
return a * b // math.gcd(a, b)
# 示例
num1 = 12
num2 = 18
print("最大公约数:", gcd(num1, num2))
print("最小公倍数:", lcm(num1, num2))
```
运行以上代码,输出结果为:
```
最大公约数: 6
最小公倍数: 36
```
相关问题
python最大公约数 最小公倍数计算注释
以下是 Python 计算最大公约数和最小公倍数的代码,附有注释:
```python
def gcd(a, b):
"""
计算 a 和 b 的最大公约数
"""
if b == 0:
return a
else:
return gcd(b, a % b)
def lcm(a, b):
"""
计算 a 和 b 的最小公倍数
"""
return a * b // gcd(a, b)
```
其中,`gcd` 函数使用了递归的方式计算最大公约数,如果 `b` 等于 0,则返回 `a`,否则返回 `b` 和 `a%b` 的最大公约数。`lcm` 函数则直接使用公式 `a*b/gcd(a,b)` 计算最小公倍数。
注意:这里的 `//` 是整除运算符,表示取整数部分的除法。
python最大公约数和最小公倍数
在Python中,求最大公约数和最小公倍数有几种常用的方法。
方法一:辗转相除法。该方法的具体步骤是,用较小数除较大数,再用出现的余数去除除数,反复进行,直到余数为0。最后的除数即为最大公约数。最小公倍数可以通过两个数的乘积除以最大公约数得到。
方法二:更相减损法。该方法的步骤是,任意给定两个正整数,判断它们是否都是偶数,若是,则用2约简;若不是,则执行下一步。以较大的数减去较小的数,然后用所得的差与较小的数比较,继续执行这个操作,直到所得的减数和差相等。第一步中约掉的若干个2与第二步中等数的乘积就是最大公约数。最小公倍数可以通过两个数的乘积除以最大公约数得到。
方法三:穷举法。该方法的步骤是,从1到较小的数逐个去除,找到两个数都能整除的最大的数,即为最大公约数。最小公倍数可以通过两个数的乘积除以最大公约数得到。
下面是几种方法的Python代码示例:
```python
# 辗转相除法
a = int(input("请输入第一个数字:"))
b = int(input("请输入第二个数字:"))
m = a
n = b
while b != 0:
temp = a % b
a = b
b = temp
max_common_divisor = a
min_common_multiple = m * n // a
print("最大公约数是:%d,最小公倍数是:%d" % (max_common_divisor, min_common_multiple))
# 更相减损法
a = int(input("请输入第一个数字:"))
b = int(input("请输入第二个数字:"))
m = a
n = b
if a < b:
a, b = b, a
divisors = []
num = 1
if a % 2 == 0 and b % 2 == 0:
a, b = a // 2, b // 2
num *= 2
r = a - b
while r not in divisors:
divisors.append(r)
a = max(b, r)
b = min(b, r)
r = a - b
max_common_divisor = num * r
min_common_multiple = (m * n) // (num * r)
print("最大公约数是:%d,最小公倍数是:%d" % (max_common_divisor, min_common_multiple))
# 穷举法
a = int(input("请输入第一个数字:"))
b = int(input("请输入第二个数字:"))
m = a
n = b
while a != b:
if a > b:
a = a - b
else:
b = b - a
max_common_divisor = a
min_common_multiple = (m * n) // a
print("最大公约数是:%d,最小公倍数是:%d" % (max_common_divisor, min_common_multiple))
```
以上是三种常用的方法,你可以根据需要选择其中一种方法来求解最大公约数和最小公倍数。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [Python求最大公约数和最小公倍数](https://blog.csdn.net/qq_46857088/article/details/124002509)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [python求最大公约数和最小公倍数的方法](https://blog.csdn.net/qq_40161609/article/details/82469855)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文