# Solving and testing primality testing (part e1cb)

Разберём решение и сразу накроем его тестами — это хороший стиль работы с кодом.

## Задача

Определить, является ли число `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) по памяти.


## Проверка тестами

Хорошая привычка — проверять решение сразу на нескольких примерах, включая крайние случаи.

```python
assert is_valid(True) is not None  # базовая проверка вызова
assert is_valid(False) is not None  # и второй случай
```

Такой минимум уже защищает от случайной ошибки при правках кода.

Тесты вида assert удобны для учебных задач: они короткие, наглядные и не требуют фреймворков.

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

[работает](https://radicle.network/nodes/index.radicle.garden/rad%3Az47gWGPhVxAirA3zuaUjoyRqcF4gd/issues/8a30cb2a59684a9e1f3fd2b6741cf63378151cab) · [делитель](https://privatebin.devol.it/?e3f0b4610dfe6dbe#GTpCVuza2CyEjUK1EZXKaZaE5Ce6affUu6ADkD4y9NAf) · [Разберём](https://blog.spikyhair.club/oza7ab90/leticia-vargas-nua) · [делители](https://radicle.network/nodes/seed.cielago.xyz/rad%3Az3Hnsj4xWecWZsVwhbhb97NJDhpwc/issues/5bd462af2a45cb03e1b6aa861da977d38b3d8555) · [фреймворков](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-3c8d66.pdf) · [ошибки](https://discuss.tchncs.de/post/65441081) · [учебных](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [Поэтому](https://statics.pancake.vn/web-media-264/90/ba/4a/40/c038d7c3fe86f3325970b6d1aa1231f978240ccdc60cfc38f5d431d1.pdf) · [проверять](https://articlescad.com/broskynova-plnka-do-torty-384272.html) · [накроем](https://gallery78447.mataroa.blog/blog/pollyfan/) · [наглядные](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-0dc6a5.pdf) · [Пример](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/yuu-sakura-hardcore-sex-and-masturbation-0cbfca.pdf) · [вызова](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/czech-streets-138-0890ed.pdf) · [assert](https://kappa.lol/JuvvEy) · [больший](https://news-ctl-posts.hashnode.dev/walking-through-word-frequency-counting-part-fbb4) · [проверка](https://archive69838.mataroa.blog/blog/turk-ensest-ifsa-videolar-ve-gizli-cekimler-paylasm/) · [примерах](https://rentry.co/brooke-shields-bath-tub-644796) · [Решение](https://ecency.com/@stanislavje5847/forsaken-rule-34-b14fc5) · [Тесты](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/shy-goth-exhib-5de80d.pdf) · [return](https://ecency.com/@jakubkolar5653/angelferrnandezz-nude-videos-5f266a) · [времени](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [находит](https://drop.xtrafrancyz.net/selif/jgpvs20zh3.pdf) · [базовая](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/where-to-find-hot-gay-furry-porn-comics-7ab510.pdf) · [памяти](https://news-ctl-posts.hashnode.dev/solving-and-testing-the-sum-of-digits-part-b0ac) · [короткие](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/r-5a9e0c.pdf) · [Такой](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da)

