Я использую алгоритм решета Эратосфена, который включает в себя извлечение первого элемента из списка, добавление его в список простых чисел, а затем извлечение любых кратных этому числу из исходного списка (так что, начиная с 2, добавляйте 2, удаляйте все кратные 2). Потом на следующий номер.
Мой цикл (в тестовом прогоне со списком 2-10) делает то, что он должен делать в первый раз, но вместо того, чтобы вытягивать 3 в следующий раз, он сразу переходит к 5, и у меня остается список из 2, 5 и 9. Вот мой код.
list_before_primes = [num for num in range(2, usr_in + 1)]
print(list_before_primes)
list_o_primes = []
for element in list_before_primes:
list_o_primes.append(element)
for sub_element in list_before_primes:
if sub_element % element == 0:
list_before_primes.remove(sub_element)
print(list_o_primes)
sub_element % element == 0
всегда будет возвращатьTrue
- person kmad1729   schedule 08.10.2015