【发布时间】:2012-12-17 18:21:18
【问题描述】:
我已经解决了这个问题,但我想知道解决这个问题的最有效方法是什么(10 秒以下)。 问题可以在http://projecteuler.net/problem=3找到。
【问题讨论】:
-
“10 岁以下”指的是什么?
-
你至少应该发布一个指向问题或文本的链接
标签: python
我已经解决了这个问题,但我想知道解决这个问题的最有效方法是什么(10 秒以下)。 问题可以在http://projecteuler.net/problem=3找到。
【问题讨论】:
标签: python
这可能是最快和最紧凑的方法,只需 141 毫秒 并给出答案6857。
13195 的质因数是 5、7、13 和 29。
600851475143 的最大质因数是多少?
n = 600851475143
i = 2
while i * i < n:
while n % i == 0:
n = n / i
i = i + 1
print n
代码取自here
【讨论】:
n 除以逐渐变大的i。一旦它被整除,那么,按理说,另一边大约和它一样大。稍微操纵一下,然后……结果就是你的结果。不要检查它是否是质数,但在 euler3 的n 的情况下它恰好是质数。它也恰好是正确的答案。几乎在任何其他n 上都失败了?没问题。