INCREASE P INCREASE P CLEAR J 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 ( PRINT K 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 ) PRINT R # R = X / 2 REPEAT R TIMES ( INCREASE R ) # R = X - (X % 2) CLEAR Z REPEAT X TIMES ( INCREASE Z ) # Z = X REPEAT R TIMES ( CLEAR F CLEAR Y REPEAT Z TIMES ( REPEAT F TIMES ( CLEAR F INCREASE Y ) INCREASE F ) ) # Z = X % 2 # X = 3X + 1 IF MODULO = 1 REPEAT Z TIMES ( # IF MODULO = 1 REPEAT X TIMES ( INCREASE X INCREASE X INCREASE X ) INCREASE X PRINT X ) # AFTER LAST OPERATION X % 2 MUST BE 0 # 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 ) )