REPEAT X TIMES ( INCREASE T INCREASE T INCREASE T ) REPEAT T TIMES ( # START Check if X == 1 CLEAR U CLEAR R REPEAT X TIMES ( REPEAT U TIMES ( CLEAR R INCREASE R ) CLEAR U INCREASE U ) # END Check if X == 1 # If X > 1 REPEAT R TIMES ( PRINT X # START Checking if divisible by 2 CLEAR E # Counter A, starts at 1 CLEAR F # Counter B, starts at 0 CLEAR G # Temp C, holds the value of B, starts at 0 CLEAR H # Holds 1 if even, and 0 if odd INCREASE E REPEAT X TIMES ( CLEAR G REPEAT E TIMES ( INCREASE G CLEAR E CLEAR H # IS_EVEN = 0 ) REPEAT F TIMES ( INCREASE E CLEAR F INCREASE H # IS_EVEN = 1 ) REPEAT G TIMES ( INCREASE F ) ) # END Checking if divisible by 2 # START If REPEAT H TIMES ( # START Division by 2 CLEAR A # Counter A, starts at 1 CLEAR B # Counter B, starts at 0 CLEAR C # Temp C, holds the value of B, starts at 0 CLEAR D # Temp D, holds the new value of X, starts at 0 INCREASE A REPEAT X TIMES ( CLEAR C REPEAT A TIMES ( INCREASE C CLEAR A INCREASE D ) REPEAT B TIMES ( INCREASE A CLEAR B ) REPEAT C TIMES ( INCREASE B ) ) CLEAR X REPEAT D TIMES ( INCREASE X ) # END Division by 2 ) # END If # START else check CLEAR I INCREASE I REPEAT H TIMES ( CLEAR I ) # END else check REPEAT I TIMES ( # START X = X * 3 + 1 REPEAT X TIMES ( INCREASE X INCREASE X ) INCREASE X # END X = X * 3 + 1 ) ) ) PRINT X