21 lines
786 B
Plaintext
21 lines
786 B
Plaintext
(let Envs
|
|
(mapcar
|
|
'((N) (list (cons 'N N) (cons 'Cnt 0))) # Build environments
|
|
(range 1 12) )
|
|
(while (find '((E) (job E (> N 1))) Envs) # Until all values are 1:
|
|
(for E Envs
|
|
(job E # Use environment 'E'
|
|
(prin (align 4 N))
|
|
(unless (= 1 N)
|
|
(inc 'Cnt) # Increment step count
|
|
(setq N
|
|
(if (bit? 1 N) # Calculate next hailstone value
|
|
(inc (* N 3))
|
|
(/ N 2) ) ) ) ) )
|
|
(prinl) )
|
|
(prinl (need 48 '=))
|
|
(for E Envs # For each environment 'E'
|
|
(job E
|
|
(prin (align 4 Cnt)) ) ) # print the step count
|
|
(prinl) )
|