python中的高效算法

时间:2015-01-25 10:28:55

标签: performance algorithm python-2.7

我正在使用名为projecteuler.net的网站,其中一个问题是:

600851475143的最大主要因素是什么? 所以我写了下面的算法。

def prime(n):
    total = []
    for p in range(2, n+1):
        for i in range(2, p):
            if p % i == 0:
                break
        else:
            total.append(p)
    return total


def primefactor(x):
    mylist = prime(x)
    total2 = []
    for i in mylist:
        if x%i == 0:
            total2.append(i)
    print max(total2)

适用于较小的数字,但当我输入primefactor(600851475143)时,它会运行大约半小时,然后冻结我的笔记本电脑。 Euler项目表示,所有问题都需要大约一分钟来计算。任何人都可以告诉我如何使我的代码更有效或更有效的方法?

0 个答案:

没有答案