Наибольший общий делитель 3х чисел - Prolog
Формулировка задачи:
Есть программа для нахождения НОД для 2х чисел. Подскажите, как переделать ее, чтобы для 3х чисел было нахождение НОД. А то в интернете что не нахожу, там везде через списки как то делать. А нужно через рекурсию, как щас.
Листинг программы
- domains
- i=integer
- predicates
- nat(i,i)
- nod(i,i,i)
- clauses
- nat(A,B):-A>0,B>0,!,nod(A,B,C),write(C).
- nat(_,_):-write("ne natural'noe chislo").
- nod(A,B,B):-A mod B=0,!.
- nod(A,B,C):-B1=A mod B, A1=B, nod(A1,B1,C).
- goal
- write("a= "),readint(A),
- write("b= "),readint(B),nat(A,B).
Решение задачи: «Наибольший общий делитель 3х чисел»
textual
Листинг программы
- nod3(A,B,C,D) :- nod(A,B,C1), nod(C,C1,D).
Объяснение кода листинга программы
- Задана функция nod3, которая принимает на вход 4 аргумента A, B, C и D.
- Внутри функции nod3 происходит вызов функции nod с аргументами A, B и C1.
- Затем результат функции nod сохраняется в переменную C.
- Далее происходит вызов функции nod с аргументами C, C1 и D.
- Результат функции nod сохраняется в переменную D.
- Функция nod3 возвращает результат.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д