Factors of an integer: Difference between revisions
Content added Content deleted
(Added missing include. Now the code compiles (tested with g++)) |
|||
Line 885: | Line 885: | ||
'((D) (=0 (% N D))) |
'((D) (=0 (% N D))) |
||
(range 1 N) ) )</lang> |
(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}}== |
=={{header|PureBasic}}== |
||
<lang PureBasic>Procedure PrintFactors(n) |
<lang PureBasic>Procedure PrintFactors(n) |