#17
PRINT X
INCREASE M
INCREASE M
# Research shows that the max step for collatz 1-1000 is 178 :)
REPEAT M TIMES ( REPEAT M TIMES ( REPEAT M TIMES ( REPEAT M TIMES ( REPEAT M TIMES ( REPEAT M TIMES ( REPEAT M TIMES ( REPEAT M TIMES ( INCREASE P ) ) ) ) ) ) ) )
INCREASE O
REPEAT X TIMES ( CLEAR S INCREASE S REPEAT O TIMES ( CLEAR O CLEAR S ) )
REPEAT P TIMES (
REPEAT S TIMES (
# Is even? and halve anyways
CLEAR G
CLEAR B
CLEAR A
REPEAT X TIMES (
INCREASE B
REPEAT A TIMES (
CLEAR A
CLEAR B
)
REPEAT B TIMES (
INCREASE A
INCREASE G
)
)
CLEAR I
INCREASE I
# Was uneven???
REPEAT B TIMES (
CLEAR I
REPEAT X TIMES ( REPEAT M TIMES ( INCREASE X ) )
INCREASE X
)
REPEAT I TIMES (
# 1 always comes after 2 so check if we should continue
CLEAR S
CLEAR X
REPEAT G TIMES ( INCREASE X INCREASE S REPEAT I TIMES ( CLEAR S CLEAR I ) ) # Set S=G-1 and X=S
REPEAT S TIMES ( CLEAR S INCREASE S ) # continue or not if X was 1
PRINT G
)
REPEAT B TIMES ( PRINT X ) # was x*3+1 so print
)
)