Определить рекурсивный предикат, проверяющий, является ли натуральное число совершенным - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д