Вот примеры рекурсивной и не рекурсивной функций для вычисления НОД с помощью модифицированного алгоритма Евклида:
Рекурсивная функция:def gcd_recursive(a, b): if b == 0: return a else: return gcd_recursive(b, a % b)Не рекурсивная функция:def gcd_iterative(a, b): while b != 0: a, b = b, a % b return a
Обе функции принимают два натуральных числа a и b и возвращают их наибольший общий делитель. В рекурсивной функции мы проверяем, равно ли второе число 0, и если да, возвращаем первое число. В противном случае вызываем функцию рекурсивно с аргументами b и a % b.
А в не рекурсивной функции мы используем цикл while, чтобы вычислять НОД до тех пор, пока второе число не станет равным 0.
Вот примеры рекурсивной и не рекурсивной функций для вычисления НОД с помощью модифицированного алгоритма Евклида:
Рекурсивная функция:def gcd_recursive(a, b):if b == 0:
return a
else:
return gcd_recursive(b, a % b)Не рекурсивная функция:def gcd_iterative(a, b):
while b != 0:
a, b = b, a % b
return a
Обе функции принимают два натуральных числа a и b и возвращают их наибольший общий делитель. В рекурсивной функции мы проверяем, равно ли второе число 0, и если да, возвращаем первое число. В противном случае вызываем функцию рекурсивно с аргументами b и a % b.
А в не рекурсивной функции мы используем цикл while, чтобы вычислять НОД до тех пор, пока второе число не станет равным 0.