Программа по нахождению нод и нок с помощью алгоритма Евклида. Почему то не работает - 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.
Объяснение кода листинга программы
- Программа запрашивает у пользователя ввод двух чисел типа integer, сохраняет их в переменных a и b.
- Затем программа сохраняет значение переменной a в переменную c, а значение переменной b в переменную d.
- Используя цикл while, программа сравнивает значения переменных a и b, и если a больше b, то вычитает из a значение b, иначе вычитает из b значение a.
- Цикл while выполняется до тех пор, пока значения переменных a и b не станут равными.
- По завершении цикла, программа выводит на экран значение переменной a, которое является НОД (наибольший общий делитель) чисел a и b.
- Затем программа вычисляет НОК (наименьшее общее кратное) чисел a, b и c, и сохраняет его в переменную n.
- Выводит на экран значение переменной n, которое является НОК (наименьшее общее кратное) чисел a, b и c.
- Программа ожидает ввода пользователя для завершения работы.