10
# M = 3
INCREASE M INCREASE M INCREASE M
# X = const start value
# Y = current value to be printed and changed next iteration
# B = isn't even
# A = isn't even (1 for isn't)
# G = temporary value for computed value
# I = is even
# S = Should continue
PRINT X # print first value
REPEAT X TIMES ( INCREASE Y )
REPEAT X TIMES (
CLEAR I
INCREASE I
REPEAT Y TIMES (
INCREASE S
REPEAT I TIMES ( CLEAR S CLEAR I )
)
REPEAT S TIMES ( CLEAR S INCREASE S ) # set to one if not zero
REPEAT S TIMES (
CLEAR S
# IS EVEN?
REPEAT Y TIMES (
INCREASE B
REPEAT A TIMES (
CLEAR A
CLEAR B
)
REPEAT B TIMES (
INCREASE A
)
)
INCREASE I
# isn't even so 3xY+1
REPEAT B TIMES (
CLEAR I
REPEAT M TIMES ( # 3 times y
REPEAT Y TIMES (
INCREASE G
)
)
INCREASE G # Y+1
)
# is even so Y/2
REPEAT I TIMES (
REPEAT Y TIMES (
INCREASE B
REPEAT A TIMES (
CLEAR A
CLEAR B
)
REPEAT B TIMES (
INCREASE A
INCREASE G
)
)
)
CLEAR I
# SET Y AS COMPUTED VALUE
CLEAR Y
INCREASE I # This is so stupid lol
REPEAT G TIMES (
INCREASE Y
)
# CLEAN UP FOR NEXT ITERATION
CLEAR G
CLEAR A
CLEAR B
CLEAR I
PRINT Y
)
)