Определить наибольший общий делитель - 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.

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

  1. Объявлены четыре переменные типа longint: a, b, c, d.
  2. Определена функция NOD(x,y:longint):longint.
  3. Функция NOD рекурсивно находит наибольший общий делитель (НОД) двух чисел.
  4. Если первый аргумент функции NOD не равен нулю, то НОД вычисляется рекурсивно для второго аргумента и результата модуляции первого аргумента вторым.
  5. Если первый аргумент функции NOD равен нулю, то второй аргумент функции NOD присваивается первому аргументу.
  6. В основной части программы происходит считывание трёх чисел в переменные a, b, c.
  7. В переменную d записывается результат вызова функции NOD с аргументами c и NOD(a,b).
  8. Если d не равно единице, то выводится значение переменной d.
  9. Если d равно единице, то выводится сообщение нод отсутствует.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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