# Pitfalls of primality testing (part deea)

Каждая учебная задача таит пару-тройку грабель; вот они.

## Задача

Определить, является ли число `n` простым. Достаточно проверять делители до квадратного корня из `n`.

## Решение

```python
def is_prime(n: int) -> bool:
    if n < 2:
        return False
    for d in range(2, int(n ** 0.5) + 1):
        if n % d == 0:
            return False
    return True


print(is_prime(29))
```

## Как это работает

Если у числа есть делитель, больший корня, то у него есть и парный меньший. Поэтому перебор до `√n` гарантированно находит любой составной делитель.

## Пример работы

```text
True
```

## Сложность

O(√n) по времени, O(1) по памяти.


## Частые ошибки

1. **Не обрабатывать крайние случаи.** Пустой ввод, ноль, отрицательные числа — именно там решение чаще всего ломается.
2. **Смешивать типы данных.** Строки и числа ведут себя по-разному; неявное приведение типов — источник неочевидных багов.
3. **Писать код без проверки на маленьких примерах.** Прогоните решение вручную на 2-3 значениях, прежде чем считать задачу решённой.

Если решение заработало с первого раза — всё равно сверьтесь со списком ошибок: половина багов рождается при доработках.

**Читайте также:**

[списком](https://radicle.network/nodes/seed.pipapo.org/rad%3AzpApSABMAot7wzZNaoNXuBG4LDyw/issues/aeaf22ac2e9214aef93870e79fb128ac5f8ac493) · [ведут](https://discuss.tchncs.de/post/65440023) · [Пустой](https://paper.wf/ninabraun03log/onlyfans-blowjob-pov-nude-video-collection-rawrsaltaccount) · [составной](https://radicle.network/nodes/seed.pipapo.org/rad%3Az4RbeBEfTFtiG7BhEHvimdFjFpAfy/issues/82d05367b0818da193b3d5daeb56a2bdb9fb3478) · [заработало](https://blogfreely.net/catherine-vasilyev70/sassie-comics-porno) · [return](https://statics.pancake.vn/web-media-264/17/41/c5/ff/99b950391c83ae570a477655c5090aa49ffb361856e316fabe05df6c.pdf) · [Сложность](https://alenakoval36.wixsite.com/my-site-1/post/%E3%82%A8%E3%83%AD-%E3%83%91%E3%82%A4%E3%82%BA%E3%83%AA-%E6%BC%AB%E7%94%BB---%E5%B7%A8%E4%B9%B3jk%E3%81%AE%E6%BF%80%E3%81%97%E3%81%84%E3%83%91%E3%82%A4%E3%82%BA%E3%83%AA%E3%82%A8%E3%83%AD%E6%BC%AB%E7%94%BB%E3%81%BE%E3%81%A8%E3%82%81) · [python](https://news-ctl-posts.hashnode.dev/walking-through-the-caesar-cipher-part-0b43) · [задача](https://privatebin.devol.it/?a3568c61ccb00506#6tKZA2koJe7E23J3FcA4nAbZf7xu8M8pgjoQjpEWZP8u) · [простым](https://writefreely.ethibox.fr/ozbb5198/stickam-caps) · [данных](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [Смешивать](https://visuals51726.mataroa.blog/blog/xxx/) · [типов](https://gal98874.carrd.co/) · [меньший](https://paper.wf/emma1996log/yu_yuhwa-onlyfans) · [багов](https://blog.spikyhair.club/oz0301bc/grand-ole-opry-october-2025-schedule-eric-pashlay-glasgow-show) · [является](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/gv-5218de.pdf) · [Каждая](https://team.writefreely.dev/oz711d48/obuv-iz-sekond-khend-kak-obrabotat) · [отрицательные](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [решённой](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [корня](https://wuchu-pub.com/uploads/20261018/809d4d7f4cde9a0495e866af546dbeee.pdf) · [больший](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/secretstars-1b2146.pdf) · [Определить](https://wuchu-pub.com/uploads/20261018/6a2585c2e604ea537daf866a9390717d.pdf) · [учебная](https://radicle.network/nodes/seed.pipapo.org/rad%3Az3kHvwqbtJkLw6r59gsFqosibTczY/issues/86d693e0acd01f8ab48abe87f14d8adc7975f649) · [именно](https://blogfreely.net/catherine-vasilyev70/ukdecilz) · [грабель](https://paste2.org/WVgBBxOb) · [числа](https://news-ctl-posts.hashnode.dev/step-by-step-merge-sort-part-f301) · [памяти](https://lrc.kiev.ua/faiiryquadmother+twitter?f=linkcentre)

