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 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
)
CLEAR D
CLEAR E
)
# C = F
CLEAR C
REPEAT F TIMES ( INCREASE C )
# Reset Variables
CLEAR G
CLEAR F
)
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
)
CLEAR D
CLEAR E
)
# C = F
CLEAR C
REPEAT F TIMES ( INCREASE C )
# Reset Variables
CLEAR G
CLEAR F
)
CLEAR D
# C is X - 2B
INCREASE D # If ( C == 0 ) D = !C
REPEAT C TIMES ( CLEAR D ) # | |
REPEAT D TIMES ( # | If D
REPEAT B TIMES ( INCREASE I ) # | I = B
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 F # | | F = C - 1
) # | |
CLEAR D # | D = 0
CLEAR E # | E = 0
) # |
INCREASE D # If F == 0 D = !F
REPEAT F TIMES ( CLEAR D ) # | |
REPEAT D TIMES ( # | If D ( C == 0 )
REPEAT B TIMES ( INCREASE I ) # | I = B
INCREASE J # | Mark as odd
CLEAR H # | Break
) # | If D ( C == 0 ) END
CLEAR D # | Reset variables
CLEAR F # | |
) # ENDIF H
CLEAR C
) # H break
) # DIV end
CLEAR B
# X the number to be iterated
# I 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 I TIMES ( INCREASE X ) # |
CLEAR K # |
) # |
CLEAR I
#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