小编Top*_*Gun的帖子

优化 Project Euler 12 (Python) 的解决方案

我有以下针对 Project Euler Problem 12 的代码。但是,执行起来需要很长时间。有人有加快速度的建议吗?

n = input("Enter number: ")
def genfact(n):
    t = []
    for i in xrange(1, n+1):
        if n%i == 0:
            t.append(i)
    return t

print "Numbers of divisors: ", len(genfact(n))
print

m = input("Enter the number of triangle numbers to check: ")
print
for i in xrange (2, m+2):
    a = sum(xrange(i))
    b = len(genfact(a))
    if b > 500:
        print a
Run Code Online (Sandbox Code Playgroud)

对于 n,我输入任意数字(例如 6)只是为了检查它是否确实返回因子数量列表的长度。对于 m,我输入 80 000 000

对于少量的情况,它的工作速度相对较快。如果我输入b > 50;对于 a,它返回 28,这是正确的。

python time execute long-integer

4
推荐指数
1
解决办法
8399
查看次数

标签 统计

execute ×1

long-integer ×1

python ×1

time ×1