# Solving and testing the Euclidean algorithm for GCD

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

## Задача

Найти НОД двух натуральных чисел `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://pastelink.net/dloqydja) · [быстро](https://dev.to/devnote2319/idempotent-publishing-jobs-6avwq-2mld) · [проверять](https://privatebin.devol.it/?b62904c3b397e587#5DivPY2MWXjTCB9VMw37cFidKAyZid13BLpV3LpvPFao) · [Остаток](https://gofile.io/d/hRAiOtgC) · [числа](https://mycommunitycalendars.com/wp-content/uploads/event-manager-uploads/event_banner/2026/11/eva-ionesco-jacques-e5d81e.pdf) · [задачу](https://paper.wf/amy-duncan50/merve-taskin-nude) · [убеждаемся](https://yakihonne.com/article/naddr1qvzqqqr4gupzp49m8p0hl4zhlx5qr3f6jur3etjnv4p7v9tw8a3hdxsvxpu374qqqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0ykk2dp3vfjnsvfe95urqdf4956rzc3k95uk2cek95cngcmr8pjrjwfs8qenq68grgr) · [глазами](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/11/priya-gamre-nude-latest-c0c922.pdf) · [min(a](https://pdfhost.io/v/hRTVWXp4eC) · [Сложность](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/11/angel-fernandez-nude-pics-4e8fa0.pdf) · [примерах](https://paste2.org/N3fv1m7K) · [натуральных](https://gal93888.carrd.co/) · [НОД(b](https://privatebin.devol.it/?d8cb94a3a1264a8d#2iwaqZDoBwrgebphQNgAVw5SdxXr3uVi6XzRug2UKN1u) · [Такой](https://dev.to/devnote2319/logging-pipeline-runs-without-noise-t8zmn-2f67) · [работает](https://privatebin.devol.it/?7e134bcb988ad4da#AFzxhTkcKBh1Ne39fbqzdgZR8UMJfhx7kSKKcDTifmGm) · [работы](https://dev.to/devnote2319/idempotent-publishing-jobs-84uy2-3em1) · [ошибки](https://blogfreely.net/catherine-vasilyev70/zu-kong-wu-jbvr) · [случай](https://dev.to/devnote2319/idempotent-publishing-jobs-rs4i7-22dm) · [правках](https://yakihonne.com/article/naddr1qvzqqqr4gupzptdz59m6denrnrwy6p7hsryfctly94dwtmdxvxvdsdxrhv9mqwt5qy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszynhwden5te0danxvcmgv95kutnsw43qz9nhwden5te0wfjkccte9ec8y6tdv9kzumn9wsqzcempd3kx2une943xvet9xp3nwepdxpjrzcfdxscnjc3dvgcxyv3dv5uk2cfjv9nxxwpnvy6sz23xuy) · [базовая](https://dev.to/devnote2319/keeping-link-blocks-stable-across-platforms-ntgpa-1p8h)

