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