Пример 2. На языке Паскаль записан алгоритм Евклида для нахождения наибольшего общего делителя двух натуральных чисел:
var x, y, nod: integer;
begin
write('Введите x>>'); read(x);
write('Введите y>>'); read(y);
while x <> y do
begin
if x > y then x := x - y
else y := y - x
end;
nod := x;
write('НОД = ', nod)
end.
Найдите с помощью программы наибольший общий делитель для следующих пар чисел: 123 и 12; 450 и 180; 500 и 125. Как можно воспользоваться этой программой, если надо найти НОД трёх натуральных чисел, например: 450, 180 и 60?
В каждом проходе цикла большее число заменяется разностью. По свойству НОД,
Для
Для
Для
НОД трёх чисел находим двумя запусками: сначала для первых двух, затем для найденного НОД и третьего числа. Для данных чисел это
НОД(
