pb62196676

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

Nov 9th, 2026
8
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.50 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://secure.linkcentre.com/status/1738246/?from=submit
  51. https://pastebin.com/ESARBTV1
  52. https://yakihonne.com/article/naddr1qvzqqqr4gupzp6kchk8e84mp35ad23x2gmwgsa43dzm8ryzjpj5hq46mcdw7ga0aqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0ykkzdehvfjxvve395mrywfk956rjces95unxvf3943rsetzx43rzefjxpjrytzn5ce
  53. https://posts.workshop-hub.workers.dev/word-count-dva-sposoba
  54. https://rimworld.gallery/m/random/t/16312
  55.  
Advertisement
Add Comment
Please, Sign In to add comment