nus/cs2104/labs/temp.pl

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).