Я пытаюсь реализовать Решето Эратосфена. Вывод кажется правильным (минус «2», которое необходимо добавить), но если входные данные функции больше 100 КБ или около того, это, по-видимому, займет слишком много времени. Как я могу оптимизировать эту функцию?
def sieveErato(n):
numberList = range(3,n,2)
for item in range(int(math.sqrt(len(numberList)))):
divisor = numberList[item]
for thing in numberList:
if(thing % divisor == 0) and thing != divisor:
numberList.remove(thing)
return numberList