首页 > 解决方案 > 我的代码中查找素数列表的错误是什么

问题描述

我想得到一个素数列表。根据素数的定义,15 不应该出现。但它显示在我的输出中。我不知道发生了什么。 python

import math
n = input('n')
n = int(n)

A = list(range(2,n+1))
print(A)
n_=math.floor(math.sqrt(n))
m = list(range(2,n_+1))
for i in range(0,len(m)):
    if m[i]!=0:
        j = m[i]^2
        while j<= n:
            A[j-2] = 0
            j = j+m[i]


A[0]=2;
print(A)
print(m)

我希望输出为 [2, 3, 0, 5, 0, 0, 0, 9, 0, 11, 0, 0, 0, 0, 0, 17, 0, 0, 0]

实际输出为 [2, 3, 0, 5, 0, 0, 0, 9, 0, 11, 0, 0, 0, 15, 0, 17, 0, 0, 0]

标签: pythonpython-3.x

解决方案


推荐阅读