# Solving and testing the Euclidean algorithm for GCD (part 26c0)

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

## Задача

Найти НОД двух натуральных чисел `a` и `b` — классическая задача школьной математики и один из древнейших алгоритмов.

## Решение

```python
def gcd(a: int, b: int) -> int:
    while b:
        a, b = b, a % b
    return a


print(gcd(48, 18))
```

## Как это работает

Алгоритм Евклида: НОД(a, b) = НОД(b, a mod b). Остаток всегда меньше делителя, поэтому числа быстро уменьшаются: (48, 18) → (18, 12) → (12, 6) → (6, 0).

## Пример работы

```text
6
```

## Сложность

O(log min(a, b)) по времени, O(1) по памяти.


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

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

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

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

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

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

[уменьшаются](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/desiree-garcia-leaks-497a38.pdf) · [python](https://sway.cloud.microsoft/E7S8wXKsEUDF3ASq) · [задача](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/cute-teens-nn-b59fb7.pdf) · [времени](https://clarasimon847.overblog.fr/2026/10/aryminh.html) · [случаи](https://statics.pancake.vn/web-media-264/bb/e5/63/8c/356a38fad59b74178ed3cd375af5165773fab9a1eeedc8a9b08848cc.pdf) · [делителя](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/cpbl-452135.pdf) · [учебных](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/brook-monk-leaks-9c5071.pdf) · [включая](https://articlescad.com/jssj-381401.html) · [min(a](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/jelly-bean-brains-only-fans-b17a00.pdf) · [второй](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/jjk-kirara-17c9af.pdf) · [натуральных](https://news-ctl-posts.hashnode.dev/step-by-step-bracket-sequence-validation-part-8a03) · [Найти](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/valbabyyy03-porn-ac67de.pdf) · [наглядные](https://jaflysilve.freeflarum.com/d/1946-1946-mntd-amyr-althlam) · [while](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [кодом](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/min-max-shagi-mvc09q22.md) · [тестами](https://paste2.org/JMpKG14z) · [Пример](https://paper.wf/clara2001log/naksueksaaaephthy-cchulaa-rwmphaaphwaathiikhunhm-sudechkchiiainchudnisit) · [Задача](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/ams-cherish-56361b.pdf) · [базовая](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [решение](https://ekral29.wixsite.com/my-site-1/post/%D0%B7%D0%B2%D1%91%D0%B7%D0%B4%D0%BE%D1%87%D0%BA%D0%B0-%D0%BF%D0%BE%D1%80%D0%BD%D0%BE-%D0%B3%D0%BE%D0%BB%D1%8B%D0%B5-%D0%B0%D0%BC%D0%B5%D1%80%D0%B8%D0%BA%D0%B0%D0%BD%D1%81%D0%BA%D0%B8%D0%B5-%D0%B7%D0%B2%D1%91%D0%B7%D0%B4%D1%8B-%D0%B8-%D0%B0%D0%BA%D1%82%D1%80%D0%B8%D1%81%D1%8B) · [защищает](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [print(gcd(48](https://al-ayyam.net/%D8%A7%D8%B3%D8%B9%D8%A7%D8%B1-%D8%B4%D8%B1%D8%A7%D8%A6%D8%AD-%D8%A7%D9%84%D8%BA%D8%A7%D8%B2-%D8%A7%D9%84%D9%85%D9%86%D8%B2%D9%84%D9%8A?f=instapaper) · [Тесты](https://discuss.tchncs.de/post/65440522) · [фреймворков](https://yakihonne.com/article/naddr1qvzqqqr4gupzp7lt2qgdwx0aucxsf3wyw8xhl7me0nn5s0xjw4kzfv2alm525vc2qy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0yknyvnxxp3nsvny94jxydpn956x2vr995ur2e3c95cnvvtrvsck2vnrxd3nyt4ggge) · [Остаток](https://nanokrok.sk/d%C4%9Btsk%C3%A1-alergie-na-potraviny?f=instapaper) · [assert](https://paper.wf/dianabraun83log/eda-gokcen-kaya-nude)

