谁能告诉我我的主要发现算法有什么问题?

时间:2016-01-31 14:09:19

标签: python algorithm primes

这是我的主要发现算法,它有点像Eratosthenes的筛子,但仅从6n +/- 1的形式开始(除了2和3之外的所有素数都是某种形式)。我的算法能够取出大多数复合数,但是当运行以查找低于100的所有素数时,95仍然保留。这是唯一显示的复合数。

def primefinder(limit):
primes = [2, 3]
for i in range(1, (limit / 6 + 1)):
    primes.append(6 * i - 1)
    primes.append(6 * i + 1)

for i in primes:
    if i > 24:
        for x in primes:
            if x <= i ** 0.5:
                if i % x == 0:
                    primes.remove(i)
                    continue
            else:
                break
return primes

当以100的限制运行时,它返回以下列表:

[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83, 89,95,97]

虽然它应该返回

[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83, 89,97]

为什么不删除95?

0 个答案:

没有答案