# Solving and testing the Euclidean algorithm for GCD (part 0ea3)

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

## Задача

Найти НОД двух натуральных чисел `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  # и второй случай
```

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

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

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

[видно](https://articlescad.com/grand-ole-opry-october-2025-schedule-eric-pashlay-glasgow-show-381143.html) · [Алгоритм](https://statics.pancake.vn/web-media-264/98/ef/5e/91/f08d5ccdadd4271948508ea74097c9bae2b6b9ed975960496502596d.pdf) · [крайние](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/silks-081-ddd4bc.pdf) · [корректности](https://annabarbosa51.wixsite.com/my-site-1/post/emoechi-18-vtuber-porn-lewd-hentai-videos-and-rule34-images) · [нескольких](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [убеждаемся](https://ecency.com/@marekkral2859/av4-us-d5e94a) · [Решение](https://paperhill7723.bearblog.dev/) · [поэтому](https://saynotodrugs2021.tw/%E5%86%A5%E6%B2%B3%E6%AE%8B%E6%9C%88?f=instapaper) · [assert](https://kappa.lol/YBHxDM) · [работает](https://martapetrenko93.wixsite.com/my-site-1/post/sophie-rain-thothub) · [print(gcd(48](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/hamile-porna-56f46a.pdf) · [натуральных](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [базовая](https://jaflysilve.freeflarum.com/d/1696-1696-subhashree-sahu-viral-video-leaked-mms-nude-archives) · [решение](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/kelsey-frances-nude-828e02.pdf) · [Хорошая](https://collectionmodels.paris/maya+poprotskaya+com?f=linkcentre) · [уменьшаются](https://blog.spikyhair.club/oz0301bc/lu-mao-da-shen-yqk) · [быстро](https://cryptoradar.com/exchanges/bybit) · [Пример](https://sway.cloud.microsoft/UoosxvFIZyzyNUu9) · [числа](https://hey.xyz/posts/2zg42yegba4hhv6mz8m) · [Проверка](https://news-ctl-posts.hashnode.dev/understanding-fast-exponentiation-part-1d51) · [задачу](https://paper.wf/vera1994log/zara-m-size) · [памяти](https://news-ctl-posts.hashnode.dev/solving-and-testing-string-reversal-part-9f7c) · [делает](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [случай](https://rentry.co/bn4zbn5n)

