Perfect numbers: Difference between revisions

No edit summary
Line 582:
(and (=0 (% N I)) (inc 'C I)) )
(= C N) ) )</lang>
 
=={{header|Prolog}}==
Works with SWI-Prolog
 
<lang Prolog>tt_divisors(X, N, TT) :-
Q is X / N,
( 0 is X mod N -> (Q = N -> TT1 is N + TT;
TT1 is N + Q + TT);
TT = TT1),
( sqrt(X) > N + 1 -> N1 is N+1, tt_divisors(X, N1, TT1);
TT1 = X).
 
perfect(X) :-
tt_divisors(X, 2, 1).
 
perfect_numbers(N, L) :-
numlist(2, N, LN),
include(perfect, LN, L).
</lang>
 
 
=={{header|PureBasic}}==
Anonymous user