INCREASE O INCREASE O INCREASE O INCREASE O REPEAT O TIMES ( INCREASE O INCREASE O INCREASE O INCREASE O ) REPEAT O TIMES ( INCREASE O INCREASE O INCREASE O INCREASE O ) REPEAT O TIMES ( INCREASE O ) INCREASE Y # Break when reaching 1 PRINT X # X is to be divided # B is guesses # H for break # Iterate over 1..A REPEAT O TIMES ( REPEAT Y TIMES ( REPEAT X TIMES ( INCREASE Z ) INCREASE D REPEAT Z TIMES ( # D on vain ensimmäisellä # E = !D INCREASE E REPEAT D TIMES ( CLEAR E ) # F = E yksi kerrallaan REPEAT E TIMES ( INCREASE F ) CLEAR D CLEAR E ) INCREASE M REPEAT F TIMES ( CLEAR M ) REPEAT M TIMES ( CLEAR Y ) CLEAR F CLEAR M CLEAR Z REPEAT Y TIMES ( INCREASE H # DIV REPEAT X TIMES ( # | REPEAT H TIMES ( # Break with H # | # v INCREASE B REPEAT X TIMES ( INCREASE C ) # C - 2B REPEAT B TIMES ( INCREASE D REPEAT C TIMES ( # D on vain ensimmäisellä # E = !D INCREASE E REPEAT D TIMES ( CLEAR E ) # F = E yksi kerrallaan REPEAT E TIMES ( INCREASE F ) REPEAT N TIMES ( CLEAR D ) INCREASE N CLEAR E ) # C = F CLEAR C REPEAT F TIMES ( INCREASE C ) # Reset Variables CLEAR G CLEAR F CLEAR N ) CLEAR D # C is X - 2B INCREASE D # If ( C == 0 ) D = !C REPEAT C TIMES ( CLEAR D ) # | | REPEAT D TIMES ( # | If D INCREASE K # | Mark as even CLEAR H # | Break with H ) # | CLEAR D # | REPEAT H TIMES ( # Only run if C != 0 INCREASE D # F = C - 1 D = 1 REPEAT C TIMES ( # | INCREASE E # | E = !D REPEAT D TIMES ( CLEAR E ) # | | # F = E yksi kerrallaan # | REPEAT E TIMES ( # | If E ( D == 0 ) INCREASE I # | | F = C - 1 ) # | | CLEAR D # | D = 0 CLEAR E # | E = 0 ) # | INCREASE D # If F == 0 D = !F REPEAT I TIMES ( CLEAR D ) # | | REPEAT D TIMES ( # | If D ( C == 0 ) INCREASE J # | Mark as odd CLEAR H # | Break ) # | If D ( C == 0 ) END CLEAR D # | Reset variables CLEAR I # | | ) # ENDIF H CLEAR C ) # H break ) # DIV end # X the number to be iterated # B X / 2 # J x odd # K x even REPEAT J TIMES ( # If odd, X = 3X + 1 REPEAT X TIMES ( # | INCREASE X # | INCREASE X # | ) # | INCREASE X # | CLEAR J # | ) # | REPEAT K TIMES ( # If even, X = I CLEAR X # | REPEAT B TIMES ( INCREASE X ) # | CLEAR K # | ) # | CLEAR B #PRINT A #PRINT B #PRINT C #PRINT D #PRINT E #PRINT F #PRINT G #PRINT H #PRINT I #PRINT J #PRINT K PRINT X ) # break ) ) # loop