# Variable explanations:
# X & Y = Input and number.
# I & J = Made to prevent the worthless cmds of copying.
# W = The "while" loop's loop number, which is 196.
# Z = The number two.
#INCREASE X
#INCREASE X INCREASE X
#INCREASE X INCREASE X INCREASE X
PRINT X
INCREASE D # Check if 1
# While loop number: (196 000 cmds)
INCREASE W INCREASE W INCREASE W
REPEAT W TIMES ( INCREASE W )
REPEAT W TIMES ( INCREASE W )
REPEAT W TIMES ( INCREASE W )
REPEAT W TIMES ( INCREASE W )
REPEAT W TIMES ( INCREASE W )
REPEAT W TIMES ( INCREASE W )
# the number 2 (2000 cmds)
INCREASE Z
INCREASE Z
# while loop
INCREASE I
REPEAT W TIMES (
REPEAT I TIMES ( # If X != 1
# Check if X == 1
REPEAT D TIMES (
INCREASE A
REPEAT X TIMES (
REPEAT B TIMES (
CLEAR A CLEAR B
)
INCREASE B
)
# Clears I & J if X == 1
REPEAT A TIMES ( CLEAR I CLEAR J )
)
# If X != 1
REPEAT I TIMES (
# Modulo 2
CLEAR B #GC
REPEAT X TIMES (
REPEAT A TIMES ( INCREASE B )
INCREASE A
REPEAT B TIMES ( CLEAR A )
CLEAR B
)
INCREASE C
# Number is odd:
REPEAT A TIMES (
CLEAR C
# 3 * X
REPEAT X TIMES (
REPEAT Z TIMES (
INCREASE X
)
)
INCREASE X # +1
PRINT X
REPEAT X TIMES (
REPEAT A TIMES ( INCREASE B )
INCREASE A
REPEAT B TIMES ( CLEAR A )
CLEAR B
REPEAT A TIMES ( INCREASE Y )
)
CLEAR A
PRINT Y
CLEAR X
)
# Number is even:
REPEAT C TIMES (
CLEAR C
REPEAT X TIMES (
REPEAT A TIMES ( INCREASE B )
INCREASE A
REPEAT B TIMES ( CLEAR A )
CLEAR B
REPEAT A TIMES ( INCREASE Y )
)
CLEAR A
PRINT Y
CLEAR X
INCREASE D
)
CLEAR I INCREASE J
)
)
REPEAT J TIMES (
# Check if Y == 1
REPEAT D TIMES (
INCREASE A
REPEAT Y TIMES (
REPEAT B TIMES (
CLEAR A CLEAR B
)
INCREASE B
)
# Clears I & J if Y == 1
REPEAT A TIMES ( CLEAR I CLEAR J )
)
# If Y != 1
REPEAT J TIMES (
# Modulo 2
CLEAR B #GC
REPEAT Y TIMES (
REPEAT A TIMES ( INCREASE B )
INCREASE A
REPEAT B TIMES ( CLEAR A )
CLEAR B
)
INCREASE C
# Number is odd:
REPEAT A TIMES (
CLEAR C
# 3 * Y
REPEAT Y TIMES (
REPEAT Z TIMES (
INCREASE Y
)
)
INCREASE Y # +1
PRINT Y
REPEAT Y TIMES (
REPEAT A TIMES ( INCREASE B )
INCREASE A
REPEAT B TIMES ( CLEAR A )
CLEAR B
REPEAT A TIMES ( INCREASE X )
)
CLEAR A
PRINT X
CLEAR Y
)
# Number is even:
REPEAT C TIMES (
CLEAR C
REPEAT Y TIMES (
REPEAT A TIMES ( INCREASE B )
INCREASE A
REPEAT B TIMES ( CLEAR A )
CLEAR B
REPEAT A TIMES ( INCREASE X )
)
CLEAR A
PRINT X
CLEAR Y
INCREASE D
)
CLEAR J INCREASE I
)
)
)