# Solving and testing primality testing (part 73ab)

Посмотрим на задачу глазами разработчика: сначала решение, затем убеждаемся в его корректности.

## Задача

Определить, является ли число `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://softnote5761.bearblog.dev/) · [Такой](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [проверка](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-6ba445.pdf) · [тестами](https://pen.absturztau.be/oz830f0e/aiqu-yi) · [случайной](https://rentry.co/carlyblaze-leaks-885241) · [правках](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/gog-and-magog-war-revelation-952375.pdf) · [Поэтому](https://ecency.com/@vojtechurban2724/alyx-star-videos-best-hd-porn-scenes-and-xxx-clips-2d457c) · [короткие](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/princess-leia-vore-565875.pdf) · [фреймворков](https://marieroux757.overblog.fr/2026/10/veronica-obando-nue-galerie-de-photos-hot-et-sexy.html) · [находит](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/ekaterina-lisina-onlyfans-leaks-ef084f.pdf) · [Решение](https://portfolio70022.mataroa.blog/blog/broskynova-plnka-do-torty/) · [сразу](https://comics.services/%E8%B6%85%E8%83%BD%E7%94%B5%E7%A3%81%E7%82%89%E7%A5%9E%E6%95%99%E6%95%99%E4%B8%BB?f=instapaper) · [случаи](https://news-ctl-posts.hashnode.dev/exploring-word-frequency-counting-part-1146) · [Сложность](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/marinabonaa-bab5d1.pdf) · [затем](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [python](https://gall.dcinside.com/mgallery/board/view/?id=thekpop&no=64466) · [работает](https://privatebin.devol.it/?c292a24e22957a6d#ESDUjbN9mmDQBJwZk4gGKE6fvQGwDDkBTaVRiazfKHPu) · [range(2](https://pen.absturztau.be/oz42cdf3/dolly-breeding) · [вызова](https://privatebin.devol.it/?941fd509bae84f64#3jsF6dV1D97KEhUZon6qMh3fVzqUReSCfyRqGQ6AGH53) · [требуют](https://yakihonne.com/article/naddr1qvzqqqr4gupzqg62fgqzuyp7v5394t8gqwkdy3ue9nskg82lj7aqxw9hh8ae7q9gqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0yknxwf4x3jxzetx95mnycee956xyve395unvwfc94skvepjxsun2dm9xu6rszp2pq9) · [крайние](https://rentry.co/l-n-h-ng-775692) · [корректности](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [учебных](https://www.imagefap.com/pictures/14229587/campus-emprendimiento-digital-madrid-innovaci-oacute-n-y-startu) · [является](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/cg-b60fb4.pdf) · [удобны](https://rimworld.gallery/m/random/t/16307) · [Тесты](https://news-ctl-posts.hashnode.dev/understanding-bracket-sequence-validation-part-23e1) · [Пример](https://statics.pancake.vn/web-media-264/fc/a7/ba/31/e6e3fb31877b3360794a15542740019a29caf3d02da07d2e954d4fca.pdf) · [случай](https://kappa.lol/3afJPZ)

