【问题标题】:How do I find the largest prime factor in an array?如何找到数组中的最大质因数?
【发布时间】:2023-01-13 16:29:06
【问题描述】:

我正在解决 euler 项目中的问题 3,以找到某个数的最大质因数。

def findFactors(num: int)->list:
    factors = []
    for i in range(1, num+1):
        if num%i == 0:
            factors.append(i)
    return factors



prime_factors = (findFactors(600851475143))
max= prime_factors[0]
num = 600851475143
for i in range(0, len(prime_factors)):
    if (prime_factors[i] > max):
        max = prime_factors[i]

print(f"The largest prime factor of the {num} is {max}")

当我运行“13195”的代码时,代码运行正确,但是当我运行实际数字(即 600851475143)的代码时,代码没有给出任何输出,也没有任何错误

【问题讨论】:

  • 这是一个非常大的数字。迭代将花费很长时间,也许几个小时

标签: python


【解决方案1】:

我认为 while 循环会执行得更好:

n = 600851475143
x = 2
while x * x < n:
    while n % x == 0:
        n = n / x
    x = x + 1

print(n)
#6857.0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 2018-03-31
    • 2013-04-11
    • 2019-06-12
    • 1970-01-01
    • 2019-04-26
    相关资源
    最近更新 更多