INCREASE D
INCREASE D
INCREASE D
INCREASE P
INCREASE P
CLEAR J
REPEAT P TIMES (
REPEAT P TIMES (
REPEAT P TIMES (
REPEAT P TIMES (
REPEAT P TIMES (
REPEAT P TIMES (
REPEAT P TIMES (
INCREASE J
)
)
)
)
)
)
)
PRINT X
REPEAT J TIMES (
CLEAR S
CLEAR F
REPEAT X TIMES (
REPEAT F TIMES (
CLEAR F
INCREASE S
)
INCREASE F
)
CLEAR K
REPEAT S TIMES (
CLEAR K
INCREASE K
)
REPEAT K TIMES (
#GET X MODULO 2 (Z)
CLEAR Z
INCREASE Z
CLEAR R
REPEAT X TIMES (
CLEAR O
CLEAR F
REPEAT Z TIMES (
REPEAT F TIMES (
CLEAR F
INCREASE O
)
INCREASE F
REPEAT O TIMES (
INCREASE R
CLEAR O
CLEAR Z
)
)
INCREASE Z
)
REPEAT R TIMES (
INCREASE R
)
CLEAR Z
REPEAT X TIMES (
INCREASE Z
)
REPEAT R TIMES (
CLEAR F
CLEAR Y
REPEAT Z TIMES (
REPEAT F TIMES (
CLEAR F
INCREASE Y
)
INCREASE F
)
CLEAR Z
REPEAT Y TIMES (
INCREASE Z
)
)
#
# Z IS X MODULO 2
#X = 3X + 1 IF MODULO = 1
REPEAT Z TIMES ( # IF MODULO = 1
REPEAT D TIMES (
REPEAT X TIMES (
INCREASE C
)
)
INCREASE C
CLEAR X
REPEAT C TIMES (
INCREASE X
)
CLEAR C
PRINT X
)
#
# DIVIDE X BY 2
CLEAR O
CLEAR R
CLEAR F
CLEAR Z
INCREASE Z
REPEAT X TIMES (
CLEAR O
CLEAR F
REPEAT Z TIMES (
REPEAT F TIMES (
CLEAR F
INCREASE O
)
INCREASE F
REPEAT O TIMES (
INCREASE R
CLEAR O
CLEAR Z
)
)
INCREASE Z
)
CLEAR X
REPEAT R TIMES (
INCREASE X
)
CLEAR R
PRINT X
)
)