Определить наибольший общий делитель - PascalABC.NET
Формулировка задачи:
Определить наибольший общий делитель трех введенных с клавиатуры чисел или вывести сообщение о его отсутствии, если такой делитель равен 1.
Решение задачи: «Определить наибольший общий делитель»
textual
Листинг программы
var a,b,c,d:longint; function NOD(x,y:longint):longint; begin if x<>0 then NOD:=NOD(y mod x,x) else NOD:=y; end; begin readln(a,b,c); d:= NOD(c,NOD(a,b)); if d = 1 then write('нод отсутствует') else writeln(d); end.
Объяснение кода листинга программы
- Объявлены четыре переменные типа longint: a, b, c, d.
- Определена функция NOD(x,y:longint):longint.
- Функция NOD рекурсивно находит наибольший общий делитель (НОД) двух чисел.
- Если первый аргумент функции NOD не равен нулю, то НОД вычисляется рекурсивно для второго аргумента и результата модуляции первого аргумента вторым.
- Если первый аргумент функции NOD равен нулю, то второй аргумент функции NOD присваивается первому аргументу.
- В основной части программы происходит считывание трёх чисел в переменные a, b, c.
- В переменную d записывается результат вызова функции NOD с аргументами c и NOD(a,b).
- Если d не равно единице, то выводится значение переменной d.
- Если d равно единице, то выводится сообщение
нод отсутствует
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д