Рассматриваем задачу: решето Эратосфена
Предлагаю решить задачу вместе: без спешки, с объяснением каждой строки.
Задача
Найти все простые числа, не превосходящие n. Наивный перебор делителей слишком медленен — есть классический алгоритм-решето.
Решение
def primes_up_to(n: int) -> list[int]:
sieve = [True] * (n + 1)
sieve[0] = sieve[1] = False
for p in range(2, int(n ** 0.5) + 1):
if sieve[p]:
for multiple in range(p * p, n + 1, p):
sieve[multiple] = False
return [i for i, is_prime in enumerate(sieve) if is_prime]
print(primes_up_to(30))
Как это работает
Список-решето помечает составные числа. Для каждого простого p вычёркиваются его кратные, начиная с p * p — меньшие кратные уже обработаны ранее.
Пример работы
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
Сложность
O(n log log n) по времени, O(n) по памяти.
Такой пример хорошо закрепляется практикой — перепишите решение руками и прогоните на своих тестах.
Related:
- Частые ошибки при решении: переворот строки
- Belinda Bely With Two Men in Explicit Adult Gallery
- Türbanlı Çıplak Kadın Resimleri | Özel İfşa ve Amatör Fotoğraf Arşivi
- Типичные ошибки при решении: проверка числа на простоту
- Zehra Güneş ifşa - Volleyball Hottie Topless Photos Leaked
- Mother's Warmth Chapter 3 - Jackerman Animated MILF
- Ловушки новичков при решении: сортировка слиянием
- roblox avatar r34
- Типичные ошибки при решении: шифр Цезаря
- mofos claire black audrey black spiraling spirit the locker room
- Изучаем задачу: среднее значение списка
- angel fernandez fucked
- topless-sandra-escacena-la-casa-en-el-arbol-2025
- Gözde Akgün ifşa galerisi - HD seks resimleri
- Два подхода: сумма цифр числа
- 面具av
- Пошаговый разбор: наибольший общий делитель
- Re Zero Beatrice Porn Comic and Adult Manga Scenes
- derpixon被诅咒的王子
- belarus studio pythia
- Bokep bocil terbaru video viral terbaru Indonesia terkini
- ukrainian nymphet
- Два способа решения: сортировка слиянием