【发布时间】:2018-12-14 02:14:07
【问题描述】:
我正在研究欧拉计划问题,这是问题五:
最大素数 问题 3 13195的质因数是5、7、13、29。
600851475143 的最大质因数是多少?
我得到了工作代码:
def factor(x, f=2):
while x >= f*f:
while x % f == 0:
x = int(x/f)
factor = f
f += 1
print(f'x = {x},\nlast factor = {factor}') # print for debug only
return max(x, factor)
因数(19*19*19*19*19*19*19*19*19*1999989899)
x = 33170854034208712, 最后一个因素 = 182128674
33170854034208712
有谁知道为什么这不能产生正确的答案?
【问题讨论】:
-
(x = 33170854034208712, last factor = 182128674) 这是你得到的答案吗?只是验证,因为我运行了您的代码并检索到:x = 6857, last factor = 1471
-
嘿,马特!你能告诉我们预期的结果是什么吗?
1999989899不是质数:1999989899 = 577 * 541 * 149 * 43 -
看看这个thread。我认为它将解决巨大数字的问题!
-
这是我错误代码的错误答案。正确答案就是下面提到的太累了。