27 lines
798 B
Text
27 lines
798 B
Text
fun hailstone ← List by int n
|
|
List h ← int[n]
|
|
while n ≠ 1
|
|
n ← when((n % 2 æ 0), n / 2, 3 * n + 1)
|
|
h.append(n)
|
|
end
|
|
return h
|
|
end
|
|
int NUMBER ← 27
|
|
int LESS_THAN ← 100000
|
|
List sequence ← hailstone(NUMBER)
|
|
writeLine("The hailstone sequence for the number " + NUMBER +
|
|
" has " + sequence.length + " elements")
|
|
writeLine("starting with " +
|
|
sequence.extractStart(4).join(", ") + " and ending with " +
|
|
sequence.extractEnd(4).join(", ") + ".")
|
|
int number ← 0
|
|
sequence ← int[]
|
|
for int i ← 1; i < LESS_THAN; ++i
|
|
List current ← hailstone(i)
|
|
if current.length > sequence.length
|
|
sequence ← current
|
|
number ← i
|
|
end
|
|
end
|
|
writeLine("The number less than 100000 with longest hailstone sequence is " +
|
|
number + ", with length of " + sequence.length + ".")
|