Рекурсивный предикат для подсчета суммы всех делителей натурального числа - Prolog

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

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

Определить рекурсивный предикат для подсчета суммы всех делителей натурального числа.

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

textual
Листинг программы
predicates
sum_div(integer,integer,integer)
task(integer,integer)
 
clauses
sum_div(N,K,0) :- K > (N div 2), !.
sum_div(N,K,R) :- (N mod K) <> 0, K1=K+1, sum_div(N,K1,R).
sum_div(N,K,R) :- (N mod K)  = 0, K1=K+1, sum_div(N,K1,R1), R=R1+K.
 
task(N,R) :- sum_div(N,2,R).

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


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

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

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