# Solving and testing primality testing (part 6d6a)

Решение без тестов быстро ломается, поэтому добавим к задаче простые проверки.

## Задача

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

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

С добавлением проверок решение становится самодокументируемым — сразу видно, что код делает.

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

[парный](https://statics.pancake.vn/web-media-264/92/87/8f/dd/46091a8eac333d4621d0c6328c2828da5da3d99f782c0b7052925af6.pdf) · [правках](https://discuss.tchncs.de/post/65445206) · [сразу](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-bd6247.pdf) · [памяти](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-aa99e3.pdf) · [защищает](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [Достаточно](https://rentry.co/jav-tr-altyaz-l-816497) · [привычка](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/buket-aslan-if-a-11a43d.pdf) · [становится](https://discuss.tchncs.de/post/65442647) · [проверки](https://hey.xyz/posts/2s490q80schqq4yr7hp) · [квадратного](https://news-ctl-posts.hashnode.dev/step-by-step-word-frequency-counting-part-be10) · [ошибки](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/fibonacci-dva-sposoba-mvcuw8wh.md) · [Пример](https://blogfreely.net/igorcollins26/aleyna-tilki-xxx) · [Поэтому](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/vladislava-shelygina-enjoys-an-intense-s-587671.pdf) · [задаче](https://articlescad.com/turk-liseli-porn-383087.html) · [крайние](https://frames93120.mataroa.blog/blog/bokep-indo-viral-colmek-kumpulan-video-colmek-terbaru/) · [Проверка](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/newstar-sunshine-f6984e.pdf) · [меньший](https://drop.xtrafrancyz.net/selif/y26qwr7nfm.pdf) · [Задача](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [минимум](https://yakihonne.com/article/naddr1qvzqqqr4gupzqkexf0jfslcsdv4flcsgc9zwfes0vk2clghm8h6lk4gjhh2z00x7qy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0yknzdrzxsmnwdpe956rve3s956rxepn943rgvmp95mkxdfexcmr2cn9xp3kylds6lz) · [примерах](https://kappa.lol/wfRRNt) · [любой](https://rentry.co/alsangels-com-308155) · [python](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/bambi-doe-bj-cd8e76.pdf) · [решение](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g)

