程序返回0

时间:2017-06-22 09:03:50

标签: python

我正在解决项目Euler上的问题23,当我试图比较1 - 28123的一组数字和包含28123以下的2个丰富数字的所有可能组合的数字列表时,我的代码一直没有返回。为了以后我可以删除它们,为效率低下的代码道歉,任何效率评论都会非常感激。

我所知道的是,我对代码'lisp'相对有信心,之前应该是正确的。干杯!

import itertools

success = []
flatten_iter = itertools.chain.from_iterable


def factors(n):
    return set(flatten_iter((i, n//i)
                            for i in range(1, int(n**0.5)+1) if n % i == 0))

for x in range(1, 28124):
    if (sum(list(factors(x))) - x) > x:
        success.append(x)

lisp = []
for x in success:
    lisp.append(2 * x)

numbers = []
for x in range(1, 28124):
    numbers.append(x)

prefinal = [x + y for x in success for y in success]
zipped = zip(prefinal, lisp)
final = set(zipped).intersection(numbers)

print(final)

0 个答案:

没有答案