我需要尽可能多地简化三个数字,因此我需要最大的共同因素。
现在我正在遍历3下方的所有数字,并检查它是否可被它们整除,但我将处理非常大的数字,因此效率低下。有没有更有效的方法来查找GCF?
答案 0 :(得分:4)
import fractions
fractions.gcd(100, fractions.gcd(10, 20))
10
答案 1 :(得分:0)
如果有人正在寻找执行此操作的缓慢(但非常简单)的方法:
def find_divisors(number):
divisors = []
for i in range(1, number + 1):
if number % i == 0:
divisors.append(i)
return divisors
def find_greatest_common_divisor(numbers):
divisors = [set(find_divisors(number)) for number in numbers]
common_divisors = set.intersection(*divisors)
greatest_common_divisor = max(common_divisors)
return greatest_common_divisor
test_1 = [2, 5]
test_2 = [12, 4, 24]
print(test_1, "->", find_greatest_common_divisor(test_1))
print(test_2, "->", find_greatest_common_divisor(test_2))
哪些印刷品:
[2, 5] -> 1
[12, 4, 24] -> 4