RosettaCodeData/Task/Hailstone-sequence/EMal/hailstone-sequence.emal
2026-04-30 12:34:36 -04:00

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 + ".")