Наибольший общий делитель 3х чисел - Prolog

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

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

Есть программа для нахождения НОД для 2х чисел. Подскажите, как переделать ее, чтобы для 3х чисел было нахождение НОД. А то в интернете что не нахожу, там везде через списки как то делать. А нужно через рекурсию, как щас.
Листинг программы
  1. domains
  2. i=integer
  3. predicates
  4. nat(i,i)
  5. nod(i,i,i)
  6. clauses
  7. nat(A,B):-A>0,B>0,!,nod(A,B,C),write(C).
  8. nat(_,_):-write("ne natural'noe chislo").
  9. nod(A,B,B):-A mod B=0,!.
  10. nod(A,B,C):-B1=A mod B, A1=B, nod(A1,B1,C).
  11. goal
  12. write("a= "),readint(A),
  13. write("b= "),readint(B),nat(A,B).

Решение задачи: «Наибольший общий делитель 3х чисел»

textual
Листинг программы
  1. nod3(A,B,C,D) :- nod(A,B,C1), nod(C,C1,D).

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

  1. Задана функция nod3, которая принимает на вход 4 аргумента A, B, C и D.
  2. Внутри функции nod3 происходит вызов функции nod с аргументами A, B и C1.
  3. Затем результат функции nod сохраняется в переменную C.
  4. Далее происходит вызов функции nod с аргументами C, C1 и D.
  5. Результат функции nod сохраняется в переменную D.
  6. Функция nod3 возвращает результат.

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


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

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

8   голосов , оценка 4.125 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы