Определить рекурсивный предикат, проверяющий, является ли натуральное число совершенным - Prolog

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

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

Помогите пожалуйста добрые люди!!! на прологе прогу не могу написать ,ничего не понимаю, буду очень благодарен 1. Определить рекурсивный предикат проверяющий, является ли натуральное число совершенным (число равно сумме своих делителей, например 6=3+2+1).

Решение задачи: «Определить рекурсивный предикат, проверяющий, является ли натуральное число совершенным»

textual
Листинг программы
predicates
sum_div(integer,integer,integer)
is_perfect(integer)
 
clauses
sum_div(N,K,0) :- K>N/2, !.
sum_div(N,K,S) :- N mod K = 0, K1=K+1, sum_div(N,K1,S1), S=S1+K.
sum_div(N,K,S) :- N mod K <> 0, K1=K+1, sum_div(N,K1,S).
 
is_perfect(X) :- sum_div(X,2,U), X=U+1.

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


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

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

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