# Common mistakes in primality testing

Разберём решение и подводные камни — их обычно не видно в готовом коде из учебника.

## Задача

Определить, является ли число `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://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/11/t-rk-e-milftoon-88295d.pdf) · [ревьюер](https://privatebin.devol.it/?6ec45027093cccfb#BZNzG975oScX2KSLtqTSMeVE61wiN7QmfQg6WAXMU58J) · [Пустой](https://gall.dcinside.com/mgallery/board/view/?id=nmixxreality&no=3539) · [проверки](https://privatebin.devol.it/?9a0e010525997e07#PZd5WDfMzMFXDMjHC21PF1wG3Zvb4wq7fwyYDiiXn7c) · [обычно](https://radicle.network/nodes/index.radicle.garden/rad%3Az24ooQiBEBySYmWEAQ7zW2dk37sds/issues/b8c3047a085d4a77a5da40b5c0d9a53393e54650) · [именно](https://paste2.org/pX6fLXJ9) · [работы](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/gcd-dva-sposoba-mw78nhrt.md) · [гарантированно](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/11/ms-sethi-onlyfans-videos-c92eda.pdf) · [Определить](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/11/silku-071-65ab1e.pdf) · [Разберём](https://jaflysilve.freeflarum.com/d/18905-18905-unidentifiedsfm-vault-girls) · [Задача](https://dev.to/devnote2319/idempotent-publishing-jobs-9r51p-7mk) · [примерах](https://dev.to/devnote2319/scheduling-retries-in-a-publishing-pipeline-xnj6q-4bf2) · [квадратного](https://dev.to/devnote2319/account-pools-for-multi-platform-posting-168el-1d7i) · [является](https://secure.linkcentre.com/status/1738431/?from=submit) · [мыслите](https://dev.to/devnote2319/idempotent-publishing-jobs-84uy2-3em1) · [неявное](https://dev.to/devnote2319/idempotent-publishing-jobs-oxu5p-1763) · [учебника](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/11/xboour-34d621.pdf) · [прежде](https://hey.xyz/posts/a0dz923y2gab2vcfb0) · [отрицательные](https://ecency.com/@zdenekpospi7879/post-1422bc) · [перебор](https://privatebin.devol.it/?c42985569c3d820e#Gna9UzCkd7wgMPK5H7rpAQH6tyCnUFeZmrqLUhsZbMyP) · [делитель](https://kappa.lol/PN3zmq) · [числа](https://dev.to/devnote2319/scheduling-retries-in-a-publishing-pipeline-cxf88-3jho)

