В чем ошибка в моем коде для поиска списка простых чисел

#python #python-3.x

#python #python-3.x

Вопрос:

Я хочу получить список простых чисел. 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]

Комментарии:

1. Какой метод вы пытаетесь использовать? Вроде как похоже на сито, но я в замешательстве…

2. извините, ожидаемый результат должен быть [2, 3, 0, 5, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 17, 0, 0, 0], что-то происходит с 3, но я не смог выяснить проблему. lol

3. Но на какую математику вы полагаетесь?

4. Это решето!! извините, что забыл упомянуть, что

5. Спасибо… Я только начинаю изучать алгоритмы. Я реализую псевдокод в соответствии с псевдокодом в книге, но это не дало мне правильного ответа, лол. Возможно, я действительно не уловил идею, лол, еще раз спасибо, что указали на ошибку. Я проверю википедию: D