📖 Документация Qumir

← Вернуться в Playground

← Все примеры

Наибольший общий делитель (НОД)

Алгоритм Евклида для нахождения наибольшего общего делителя двух чисел.

НОД — это самое большое число, на которое оба числа делятся без остатка. Например, НОД(48, 18) = 6.

Идея алгоритма

Алгоритм Евклида основан на простом свойстве: $\text{НОД}(a, b) = \text{НОД}(b, a \bmod b)$.

То есть НОД двух чисел не меняется, если большее число заменить остатком от деления на меньшее. Повторяем, пока одно из чисел не станет 0 — тогда второе число и есть ответ.

Пример по шагам:

Разбор

Главная программа

алг
нач
    вывод "НОД(48, 18) = ", нод(48, 18), нс
кон

Функция нод

алг цел нод(цел a, цел b)
нач
    нц пока b <> 0
        цел t
        t := b
        b := mod(a, b)
        a := t
    кц
    знач := a
кон

Полная программа

алг
нач
    вывод "НОД(48, 18) = ", нод(48, 18), нс
кон

алг цел нод(цел a, цел b)
нач
    нц пока b <> 0
        цел t
        t := b
        b := mod(a, b)
        a := t
    кц
    знач := a
кон