为什么这段代码中没有打印出来?

时间:2017-05-27 02:43:19

标签: python

代码的目的是找到testNum的最大素数因子。

testNum = 600851475143

for i in range(2,600851475144):
    global answer
    if testNum % i == 0:
        for j in range(2,i):
            if i % j == 0:
                break
            else:
                answer = i

print(answer)

1 个答案:

答案 0 :(得分:5)

我注意到这是Project Euler Problem 3

你的暴力算法太慢了。您正在尝试执行6000亿次迭代。您需要提出一种更智能的方法来减少迭代次数。

这是Project Euler问题的一个共同主题。最直接的方法很少奏效。这些问题旨在要求巧妙的算法。

提示:当你找到一个因素时,要考虑它。