在 Python 中,求三个数的最大公约数可以通过以下几种方法实现:
辗转相除法
使用迭代或递归实现。
迭代实现示例代码:
def gcd(a, b):
while b != 0:
a, b = b, a % b
return a
更相减损法
通过不断相减两个数的差值来求解最大公约数。
示例代码:
def gcd_subtraction(a, b):
while a != b:
if a > b:
a = a - b
else:
b = b - a
return a
穷举法
逐个尝试所有可能的因数,找出最大的公约数。
示例代码:
def gcd_exhaustive(a, b):
for i in range(1, min(a, b) + 1):
if a % i == 0 and b % i == 0:
return i
使用内置 `math` 库
Python 的 `math` 模块提供了一个 `gcd` 函数,可以直接用来计算两个数的最大公约数。
示例代码:
import math
def gcd_math(a, b):
return math.gcd(a, b)
对于三个数,可以先求出前两个数的最大公约数,然后再求这个结果和第三个数的最大公约数。
示例代码:
def gcd_of_three(a, b, c):
return gcd(gcd(a, b), c)
以上方法均可用于计算三个数的最大公约数。