Если вам нужно сгенерировать простые числа от 1 до N, "тупой" способ сделать это - перебрать все числа от 2 до N и проверить, не делятся ли числа на любое число, найденное до сих пор, меньше квадратного корня из числа, о котором идет речь.
Как я вижу, сито Эратосфена делает то же самое, кроме другого пути - когда он находит простое N, он отмечает все числа, кратные N.
Но отметим ли вы, что X, когда вы находите N, или проверяете, является ли X делимым на N, фундаментальная сложность, big-O остается неизменной. Вы по-прежнему выполняете одну операцию с постоянным временем на пару с числом-первыми. Фактически, немой алгоритм прерывается, как только он находит премьер, но сито Эратосфена отмечает каждое число несколько раз - один раз для каждого штриха он делится на. Это минимум вдвое больше операций для каждого числа, кроме простых.
Неужели я что-то не понимаю?