Python-курс
➗ Математические алгоритмы

НОД, НОК и Фибоначчи

Алгоритм Евклида и итеративные числовые алгоритмы.

~30 минСредний 2 урока

Наибольший общий делитель

НОД (наибольший общий делитель) двух чисел — самое большое число, на которое делятся оба. Например, НОД(12, 18) = 6, потому что 6 — крупнейший общий делитель. НОД нужен, чтобы сокращать дроби и решать задачи на делимость.

Самый известный способ его найти — алгоритмЧёткая последовательность шагов для решения задачи за конечное число действий. Евклида, придуманный более двух тысяч лет назад. Идея: НОД(a, b) равен НОД(b, a % b). Мы заменяем большее число на остаток от деления, пока второе число не станет нулём — тогда первое и есть ответ.

gcd.py

Проследим gcd(48, 36): пара (48, 36) → (36, 48%36=12) → (12, 36%12=0). Как только b стало 0, возвращаем a = 12. Каждый шаг быстро уменьшает числа, поэтому алгоритм работает молниеносно даже для огромных значений.

Шаг 1 из 8