# Step-by-step: 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. **Шаг 1. Входные данные.** Проверяем, что приходит в функцию, и какие значения считаются корректными.
2. **Шаг 2. Основной цикл.** Именно здесь происходит вся работа; следим за изменениями переменных на каждой итерации.
3. **Шаг 3. Результат.** Убеждаемся, что возвращаемое значение соответствует условию задачи, включая крайние случаи.

Когда каждый шаг понятен, доработка решения перестаёт быть лотереей.

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

[числа](https://archive63105.mataroa.blog/blog/rennafoxy/) · [времени](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/11/event-123a4c.pdf) · [корня](https://dev.to/devnote2319/account-pools-for-multi-platform-posting-ex8x1-55li) · [условию](https://dev.to/devnote2319/idempotent-publishing-jobs-oxu5p-1763) · [задачи](https://dev.to/devnote2319/logging-pipeline-runs-without-noise-owga6-4o5l) · [перестаёт](https://posts.workshop-hub.workers.dev/min-max-razbor) · [больший](https://blogfreely.net/nataliarussell2/miss-lilus-handjob) · [range(2](https://raindrop.io/undefined/collection-75601863) · [итерации](https://otvorenepravo.sk/darling+in+the+franxx+wallpaper+phone?f=instapaper) · [случаи](https://radicle.network/nodes/seed.pipapo.org/rad%3Az4Ui6jMGhDoK8TbFhKj6xmdPZK8vj/issues/28923198d5607e14252eebaba5761adae7abb939) · [доработка](https://hey.xyz/posts/2grkxbh3391ay2kw67c) · [Именно](https://dev.to/devnote2319/scheduling-retries-in-a-publishing-pipeline-xnj6q-4bf2) · [int(n](https://discuss.tchncs.de/post/65439375) · [следим](https://pastelink.net/ptbqhv8u) · [объясним](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/11/wyoming-iphone-wallpaper-f0bd9c.pdf) · [return](https://privatebin.devol.it/?fa3c65ebc5d2c8c1#6kr6DsJsNGyfYBLt5QV43Q7nj6DG96wLXxj5jffDYyKG) · [возвращаемое](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/11/us-av4-e9aea7.pdf) · [False](https://hey.xyz/posts/3m0md9r9chjrehbtpzb) · [Когда](https://dev.to/devnote2319/scheduling-retries-in-a-publishing-pipeline-cxf88-3jho) · [каждой](https://rimworld.gallery/m/random/t/16275) · [Разложим](https://milhench.com/wp-content/uploads/event-manager-uploads/event_banner/2026/11/south-asian-sex-154655875411554321-porno-70836d.pdf) · [делители](https://elenamoreau304.overblog.fr/2026/11/burettevideo.html) · [крайние](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/11/miss-lilus-handjob-51732f.pdf) · [простым](https://dev.to/devnote2319/logging-pipeline-runs-without-noise-4c7be-544k) · [решение](https://milhench.com/wp-content/uploads/event-manager-uploads/event_banner/2026/11/dick-flash-twitter-9b6337.pdf) · [считаются](https://ecency.com/@jakubkolar5653/akt-eee484) · [является](https://dev.to/devnote2319/idempotent-publishing-jobs-6avwq-2mld) · [меньший](https://hey.xyz/posts/wmmbe1vqa1x8traqqc) · [Определить](https://publicsecgov.org/wp-content/uploads/event-manager-uploads/event_banner/2026/11/twitter-t-rk-liseli-if-a-9749c9.pdf)

