Наибольший общий делитель последовательности чисел ( 3 числа желательно). - Prolog

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

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

Наибольший общий делитель последовательности чисел ( 3 числа желательно). Извините пожалуйста что о таком прошу, просто пролог вообще не понимаю(( искал на форуме похожие темы находил, но нече не получалось, можете дать реализацию в турбо-прологе весь код, я могу блин в любом другом языке это зделать, а тут нет. Помогите пожалуйста.
И вообще с кем можно пообщаться по прологу)) и кто может дать литературу где нормально расписанно что и как делаеться, обьявление, синтаксис,пож=)

Решение задачи: «Наибольший общий делитель последовательности чисел ( 3 числа желательно).»

textual
Листинг программы
domains
i=integer
il=i*
predicates
nod(i,i,i)
nod_list(il,i)
clauses
nod(N,M,M):-N mod M=0,!.
nod(N,M,R):-M1=N mod M,N1=M,nod(N1,M1,R).
nod_list([A,B],R):-nod(A,B,R),!.
nod_list([X|Tail],R):-nod_list(Tail,RTail),nod(X,RTail,R).
goal
nod_list([120,30,45,95],J).

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

  1. Начинается с объявления двух доменов: i (целое число) и il (i умножить на себя).
  2. Затем объявляются два предиката: nod (N, M, M) и nod_list (il, i).
  3. В первом предикате (nod) проверяется, делится ли первое число (N) на второе (M) без остатка. Если да, то выводится сообщение и происходит завершение работы. Если нет, то вычисляется третье число (M1), равное остатку от деления N на M, и происходит рекурсивный вызов первого предиката с новыми значениями.
  4. Во втором предикате (nod_list) идет проверка списка чисел. Если список пустой, то происходит завершение работы. Если в списке есть элементы, то происходит рекурсивный вызов второго предиката с новыми значениями.
  5. В цели (goal) задается список чисел [120,30,45,95] и переменная J.
  6. Код пытается найти наибольший общий делитель чисел из списка.
  7. Результатом работы программы будет число J, которое будет содержать наибольший общий делитель чисел из списка.

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


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

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

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