21 lines
307 B
Prolog
21 lines
307 B
Prolog
% collatz(1).
|
|
% collatz(N) :-
|
|
% N > 1,
|
|
% Next is (N mod 2 =:= 0 -> N // 2 ; 3 * N + 1),
|
|
% collatz(Next).
|
|
|
|
collatz(N, CN) :-
|
|
0 is N mod 2,
|
|
CN is (N/2).
|
|
|
|
collatz(N, CN) :-
|
|
1 is N mod 2,
|
|
CN is (3*N+1).
|
|
|
|
collatzSeq(1, [1]) :- !.
|
|
|
|
collatzSeq(N, [N | L]) :-
|
|
collatz(N, CN),
|
|
collatzSeq(CN, L).
|
|
|