% The collatz sequence even(N):- 0 is N mod 2. step(N,M) :- even(N), !, M is N / 2 ; !, M is 3 * N +1. hailstone(1):-writeln(1), !. hailstone(N):- writeln(N), !, step(N,M), hailstone(M).