Рекурсивная функция и другие методы поиска НОД двух чисел

Вот рекурсивная функция для поиска наибольшего общего делителя (НОД) двух чисел:

def gcd_recursive(a, b):
    if b == 0:
        return a
    else:
        return gcd_recursive(b, a % b)

Эта функция использует алгоритм Евклида для расчета НОД. Он рекурсивно делит большее число на меньшее и продолжает делить остаток на меньшее число, пока остаток не станет равным нулю. Тогда НОД представляет собой последний ненулевой остаток.

Альтернативные методы поиска НОД:

  1. Итерационный алгоритм Евклида. Это итеративная версия алгоритма Евклида, в которой для вычисления НОД вместо рекурсии используется цикл.
  2. Метод простой факторизации. Этот метод включает в себя поиск простых делителей обоих чисел и определение общих делителей.
  3. Алгоритм двоичного НОД: также известный как алгоритм Штейна, он использует побитовые операции для эффективного вычисления НОД.
  4. Метод на основе деления: в этом методе числа последовательно делятся на меньшие числа, чтобы найти НОД.