44 lines
784 B
Plaintext
44 lines
784 B
Plaintext
(
|
|
( hailstone
|
|
= L len
|
|
. !arg:?L
|
|
& whl
|
|
' ( !arg:~1
|
|
& (!arg*1/2:~/|3*!arg+1):?arg
|
|
& !arg !L:?L
|
|
)
|
|
& (!L:? [?len&!len.!L)
|
|
)
|
|
& ( reverse
|
|
= L e
|
|
. :?L
|
|
& whl'(!arg:%?e ?arg&!e !L:?L)
|
|
& !L
|
|
)
|
|
& hailstone$27:(?len.?list)
|
|
& reverse$!list:?first4 [4 ? [-5 ?last4
|
|
& put$"Hailstone sequence starting with "
|
|
& put$!first4
|
|
& put$(str$(" has " !len " elements and ends with "))
|
|
& put$(!last4 \n)
|
|
& 1:?N
|
|
& 0:?max:?Nmax
|
|
& whl
|
|
' ( !N+1:<100000:?N
|
|
& hailstone$!N
|
|
: ( >!max:?max&!N:?Nmax
|
|
| ?
|
|
. ?
|
|
)
|
|
)
|
|
& out
|
|
$ ( str
|
|
$ ( "The number <100000 with the longest hailstone sequence is "
|
|
!Nmax
|
|
" with "
|
|
!max
|
|
" elements."
|
|
)
|
|
)
|
|
);
|