hailstone[n] := { results = new array while n != 1 { results.push[n] if n mod 2 == 0 // n is even? n = n / 2 else n = (3n + 1) } results.push[1] return results } longestLen = 0 longestN = 0 for n = 1 to 100000 { seq = hailstone[n] if length[seq] > longestLen { longestLen = length[seq] longestN = n } } println["$longestN has length $longestLen"]