Программа по нахождению нод и нок с помощью алгоритма Евклида. Почему то не работает - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Программа по нахождению нод и нок с помощью алгоритма Евклида. Почему то не работает, не могу разобраться. Только НОД работал, а когда ввёл нахождение НОК, перестало работать. Помогите пожалуйста.
program nod;
var a, b, c, d, n: integer;
begin
writeln ('Введите число А и Б');
readln (a,b);
c:=a;
d:=b;
while a<>b do
begin
if a>b
then a:=a-b
else b:=b-a
end;
writeln ('НОД)=', a);
readln;
n:=(c*d)/a;
writeln ('НОК=', n);
readln.
end.

Решение задачи: «Программа по нахождению нод и нок с помощью алгоритма Евклида. Почему то не работает»

textual
Листинг программы
program nod;
var a, b, c, d, n: integer;
begin
writeln ('Введите число А и Б');
readln (a,b);
c:=a;
d:=b;
while a<>b do
begin
if a>b
then a:=a-b
else b:=b-a
end;
writeln ('НОД=', a);
n:=(c*d) div a;
writeln ('НОК=', n);
readln;
end.

Объяснение кода листинга программы

  1. Программа запрашивает у пользователя ввод двух чисел типа integer, сохраняет их в переменных a и b.
  2. Затем программа сохраняет значение переменной a в переменную c, а значение переменной b в переменную d.
  3. Используя цикл while, программа сравнивает значения переменных a и b, и если a больше b, то вычитает из a значение b, иначе вычитает из b значение a.
  4. Цикл while выполняется до тех пор, пока значения переменных a и b не станут равными.
  5. По завершении цикла, программа выводит на экран значение переменной a, которое является НОД (наибольший общий делитель) чисел a и b.
  6. Затем программа вычисляет НОК (наименьшее общее кратное) чисел a, b и c, и сохраняет его в переменную n.
  7. Выводит на экран значение переменной n, которое является НОК (наименьшее общее кратное) чисел a, b и c.
  8. Программа ожидает ввода пользователя для завершения работы.

Оцени полезность:

7   голосов , оценка 3.571 из 5
Похожие ответы