在Python中,求两个数的最大公约数(GCD)有多种方法,以下是几种常见的方法:
1. 使用内置的`math.gcd`函数:
import math
a = 24
b = 36
gcd_result = math.gcd(a, b)
print(f"{a} 和 {b} 的最大公约数是: {gcd_result}")
2. 使用辗转相除法(欧几里得算法)的迭代实现:
def gcd(a, b):
while b:
a, b = b, a % b
return a
print(gcd(24, 36)) 输出:12
3. 使用辗转相除法的递归实现:
def gcd_recursive(a, b):
if b == 0:
return a
return gcd_recursive(b, a % b)
print(f"{36} 和 {60} 的最大公约数是: {gcd_recursive(36, 60)}")
4. 使用更相减损法:
def gcd_subtraction(a, b):
while a != b:
if a > b:
a = a - b
else:
b = b - a
return a
print(gcd_subtraction(24, 36)) 输出:12
5. 使用暴力枚举法:
def gcd_brute_force(a, b):
for i in range(min(a, b), 0, -1):
if a % i == 0 and b % i == 0:
return i
return 1
print(gcd_brute_force(24, 36)) 输出:12
以上方法都可以用来计算两个数的最大公约数。您可以根据自己的需要选择合适的方法。