INCREASE T
INCREASE T
INCREASE T
INCREASE T
INCREASE T
INCREASE T
INCREASE T
INCREASE T
INCREASE T
INCREASE T
INCREASE T
PRINT X
# 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
REPEAT R TIMES (
REPEAT T TIMES (
REPEAT T TIMES (
CLEAR U
CLEAR R
REPEAT X TIMES (
REPEAT U TIMES (
CLEAR R
INCREASE R
)
CLEAR U
INCREASE U
)
REPEAT R TIMES (
# 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
CLEAR D # Temp D, holds the new value of X, starts at 0
INCREASE E
REPEAT X TIMES (
CLEAR G
REPEAT E TIMES (
INCREASE G
CLEAR E
CLEAR H # IS_EVEN = 0
INCREASE D
)
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 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
)
)
) )