
Запишите алгоритм Евклида. Найти наибольший общий делитель (НОД) двух целых положительных чисел.


Ответы на вопрос

function nod( a, b: longint): longint;
begin
while (a <> 0) and (b <> 0) do
if a >= b then
a:= a mod b
else
b:= b mod a;
nod:= a + b;
end;



Алгоритм Евклида находит наибольший общий делитель (НОД) двух целых положительных чисел. Вот его шаги:
Начните с двух заданных чисел, которые мы обозначим как "a" и "b", где a >= b. Если a < b, поменяйте значения a и b.
Разделите a на b и найдите остаток. Запишите его как "r".
Если r равно нулю, то b является НОДом двух исходных чисел, и алгоритм завершается.
Если r не равно нулю, замените a на b, b на r и вернитесь к шагу 2.
Повторяйте шаги 2-4 до тех пор, пока не будет найден НОД.
В итоге, когда алгоритм завершается, значение b будет являться НОДом исходных чисел.
Вот пример алгоритма Евклида на языке Python:
pythondef euclidean_algorithm(a, b):
if a < b:
a, b = b, a
while b != 0:
r = a % b
a, b = b, r
return a
# Пример использования:
num1 = 48
num2 = 18
gcd = euclidean_algorithm(num1, num2)
print("Наибольший общий делитель чисел", num1, "и", num2, ":", gcd)
В данном примере результатом будет "Наибольший общий делитель чисел 48 и 18: 6".


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili