繁体   English   中英

最有效的方法找到3个数字的最大公因数?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM