RosettaCodeData/Task/Hailstone-sequence/EMal/hailstone-sequence.emal

28 lines
798 B
Text
Raw Permalink Normal View History

2026-04-30 12:34:36 -04:00
fun hailstone ← List by int n
List h ← int[n]
while n ≠ 1
n ← when((n % 2 æ 0), n / 2, 3 * n + 1)
2023-07-01 11:58:00 -04:00
h.append(n)
end
return h
end
2026-04-30 12:34:36 -04:00
int NUMBER ← 27
int LESS_THAN ← 100000
List sequence ← hailstone(NUMBER)
2023-07-01 11:58:00 -04:00
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(", ") + ".")
2026-04-30 12:34:36 -04:00
int number ← 0
sequence ← int[]
for int i ← 1; i < LESS_THAN; ++i
List current ← hailstone(i)
2023-07-01 11:58:00 -04:00
if current.length > sequence.length
2026-04-30 12:34:36 -04:00
sequence ← current
number ← i
2023-07-01 11:58:00 -04:00
end
end
writeLine("The number less than 100000 with longest hailstone sequence is " +
number + ", with length of " + sequence.length + ".")