25 lines
593 B
Plaintext
25 lines
593 B
Plaintext
link printf
|
|
|
|
procedure main()
|
|
every put(environment := [], hailenv(1 to 12,0)) # setup environments
|
|
printf("Sequences:\n")
|
|
while (e := !environment).sequence > 1 do {
|
|
every hailstep(!environment)
|
|
printf("\n")
|
|
}
|
|
printf("\nCounts:\n")
|
|
every printf("%4d ",(!environment).count)
|
|
printf("\n")
|
|
end
|
|
|
|
record hailenv(sequence,count)
|
|
|
|
procedure hailstep(env)
|
|
printf("%4d ",env.sequence)
|
|
if env.sequence ~= 1 then {
|
|
env.count +:= 1
|
|
if env.sequence % 2 = 0 then env.sequence /:= 2
|
|
else env.sequence := 3 * env.sequence + 1
|
|
}
|
|
end
|