[英]most efficient way find the greatest common factor of 3 numbers?
我需要尽可能多地简化三个数字,因此我需要最大的共同因素。
现在我正在遍历3下面的所有数字,并检查它是否可以被它们整除,但我将处理非常大的数字,因此效率很低。 有没有更有效的方法来找到GCF?
好吧,你在标准库中有一些东西
import fractions
fractions.gcd(100, fractions.gcd(10, 20))
10
如果有人正在寻找缓慢(但非常简单)的方法:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.