# 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. PRINT X # 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 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 ) CLEAR I INCREASE J ) ) REPEAT J TIMES ( # Check if Y == 1 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 ) CLEAR J INCREASE I ) ) ) # TODO: Make it so it doesnt check if X==1 after 3X+1 / 2