pb1a38a600

A step-by-step look at the Sieve of Eratosthenes

Nov 12th, 2026
6
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. A step-by-step look at the Sieve of Eratosthenes
  2.  
  3. Медленный разбор помогает понять код, а не просто скопировать его.
  4.  
  5. Задача
  6.  
  7. Найти все простые числа, не превосходящие n. Наивный перебор делителей слишком медленен — есть классический алгоритм-решето.
  8.  
  9. Решение
  10.  
  11. ``python
  12. def primes_up_to(n: int) -> list[int]:
  13. sieve = [True] * (n + 1)
  14. sieve[0] = sieve[1] = False
  15. for p in range(2, int(n ** 0.5) + 1):
  16. if sieve[p]:
  17. for multiple in range(p * p, n + 1, p):
  18. sieve[multiple] = False
  19. return [i for i, is_prime in enumerate(sieve) if is_prime]
  20.  
  21. print(primes_up_to(30))
  22. `
  23.  
  24. Как это работает
  25.  
  26. Список-решето помечает составные числа. Для каждого простого p вычёркиваются его кратные, начиная с p * p — меньшие кратные уже обработаны ранее.
  27.  
  28. Пример работы
  29.  
  30. `text
  31. [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
  32. ``
  33.  
  34. Сложность
  35.  
  36. O(n log log n) по времени, O(n) по памяти.
  37.  
  38. Разбор по шагам
  39.  
  40. 1. Шаг 1. Входные данные. Проверяем, что приходит в функцию, и какие значения считаются корректными.
  41. 2. Шаг 2. Основной цикл. Именно здесь происходит вся работа; следим за изменениями переменных на каждой итерации.
  42. 3. Шаг 3. Результат. Убеждаемся, что возвращаемое значение соответствует условию задачи, включая крайние случаи.
  43.  
  44. Когда каждый шаг понятен, доработка решения перестаёт быть лотереей.
  45.  
  46. View Full Gallery → https://go.cbrop.com/prse
  47.  
  48. Related:
  49.  
  50. https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/11/lamiaseereed-34b6f4.pdf
  51. https://www.booksie.com/790838-solving-and-testing-string-reversal
  52. https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/11/taylorteacheshistory-f1fb98.pdf
  53. https://rentry.org/einen-blasen-100690
  54. https://pastebin.com/V1KpLmBV
  55.  
Advertisement
Add Comment
Please, Sign In to add comment