Factors of an integer: Difference between revisions

(Added missing include. Now the code compiles (tested with g++))
Line 885:
'((D) (=0 (% N D)))
(range 1 N) ) )</lang>
=={{header|Prolog}}==
<lang Prolog>factor(N, L) :-
factor(N, 1, [], L).
 
factor(N, X, LC, L) :-
0 is N mod X,
!,
Q is N / X,
(Q = X ->
sort([Q | LC], L)
;
(Q > X ->
X1 is X+1,
factor(N, X1, [X, Q|LC], L)
;
sort(LC, L)
)
).
 
factor(N, X, LC, L) :-
Q is N / X,
(Q > X ->
X1 is X+1,
factor(N, X1, LC, L)
;
sort(LC, L)
).
</lang>
Output :
<lang> ?- factor(36, L).
L = [1,2,3,4,6,9,12,18,36].
 
?- factor(53, L).
L = [1,53].
 
?- factor(32765, L).
L = [1,5,6553,32765].
 
?- factor(32766, L).
L = [1,2,3,6,43,86,127,129,254,258,381,762,5461,10922,16383,32766].
 
?- factor(32767, L).
L = [1,7,31,151,217,1057,4681,32767].
 
</lang>
=={{header|PureBasic}}==
<lang PureBasic>Procedure PrintFactors(n)
Anonymous user