27 lines
773 B
Text
27 lines
773 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 + ".")
|