INCREASE W INCREASE W INCREASE W
REPEAT W TIMES ( INCREASE W )
REPEAT W TIMES ( INCREASE W )
REPEAT W TIMES ( INCREASE W )
REPEAT W TIMES ( INCREASE W )
REPEAT W TIMES ( INCREASE W )
REPEAT W TIMES ( INCREASE W )
#INCREASE X INCREASE X INCREASE X INCREASE X INCREASE X INCREASE X INCREASE X INCREASE X INCREASE X
#INCREASE X INCREASE X INCREASE X INCREASE X INCREASE X INCREASE X INCREASE X INCREASE X INCREASE X
#INCREASE X INCREASE X INCREASE X INCREASE X INCREASE X INCREASE X INCREASE X INCREASE X INCREASE X
PRINT X # Starting number of Collatz Conjecture.
# Copy to other variable.
REPEAT X TIMES ( INCREASE Z )
# DECIMAL TO BINARY
# FLOOR(X / 2) Y = QUOTIENT, R = REMAINDER
INCREASE R
REPEAT Z TIMES (
REPEAT R TIMES ( INCREASE V )
INCREASE R REPEAT V TIMES ( CLEAR R ) CLEAR V
# GETS DIVIDED NUMBER
REPEAT R TIMES ( INCREASE Y )
)
REPEAT R TIMES ( INCREASE V ) INCREASE R REPEAT V TIMES ( CLEAR V CLEAR R )
CLEAR Z # GC
INCREASE Q
REPEAT Y TIMES (
REPEAT Q TIMES ( INCREASE V )
INCREASE Q REPEAT V TIMES ( CLEAR Q CLEAR V )
# GETS DIVIDED NUMBER
REPEAT Q TIMES ( INCREASE Z )
)
REPEAT Q TIMES ( INCREASE V ) INCREASE Q REPEAT V TIMES ( CLEAR V CLEAR Q )
CLEAR Y # GC
INCREASE P
REPEAT Z TIMES (
REPEAT P TIMES ( INCREASE V )
INCREASE P REPEAT V TIMES ( CLEAR P CLEAR V )
# GETS DIVIDED NUMBER
REPEAT P TIMES ( INCREASE Y )
)
REPEAT P TIMES ( INCREASE V ) INCREASE P REPEAT V TIMES ( CLEAR P CLEAR V )
CLEAR Z # GC
INCREASE O
REPEAT Y TIMES (
REPEAT O TIMES ( INCREASE V )
INCREASE O REPEAT V TIMES ( CLEAR O CLEAR V )
# GETS DIVIDED NUMBER
REPEAT O TIMES ( INCREASE Z )
)
REPEAT O TIMES ( INCREASE V ) INCREASE O REPEAT V TIMES ( CLEAR O CLEAR V )
CLEAR Y # GC
INCREASE N
REPEAT Z TIMES (
REPEAT N TIMES ( INCREASE V )
INCREASE N REPEAT V TIMES ( CLEAR N CLEAR V )
# GETS DIVIDED NUMBER
REPEAT N TIMES ( INCREASE Y )
)
REPEAT N TIMES ( INCREASE V ) INCREASE N REPEAT V TIMES ( CLEAR N CLEAR V )
CLEAR Z # GC
INCREASE M
REPEAT Y TIMES (
REPEAT M TIMES ( INCREASE V )
INCREASE M REPEAT V TIMES ( CLEAR M CLEAR V )
# GETS DIVIDED NUMBER
REPEAT M TIMES ( INCREASE Z )
)
REPEAT M TIMES ( INCREASE V ) INCREASE M REPEAT V TIMES ( CLEAR M CLEAR V )
CLEAR Y # GC
INCREASE L
REPEAT Z TIMES (
REPEAT L TIMES ( INCREASE V )
INCREASE L REPEAT V TIMES ( CLEAR L CLEAR V )
# GETS DIVIDED NUMBER
REPEAT L TIMES ( INCREASE Y )
)
REPEAT L TIMES ( INCREASE V ) INCREASE L REPEAT V TIMES ( CLEAR L CLEAR V )
CLEAR Z # GC
INCREASE K
REPEAT Y TIMES (
REPEAT K TIMES ( INCREASE V )
INCREASE K REPEAT V TIMES ( CLEAR K CLEAR V )
# GETS DIVIDED NUMBER
REPEAT K TIMES ( INCREASE Z )
)
REPEAT K TIMES ( INCREASE V ) INCREASE K REPEAT V TIMES ( CLEAR K CLEAR V )
CLEAR Y # GC
INCREASE J
REPEAT Z TIMES (
REPEAT J TIMES ( INCREASE V )
INCREASE J REPEAT V TIMES ( CLEAR J CLEAR V )
# GETS DIVIDED NUMBER
REPEAT J TIMES ( INCREASE Y )
)
REPEAT J TIMES ( INCREASE V ) INCREASE J REPEAT V TIMES ( CLEAR J CLEAR V )
CLEAR Z # GC
INCREASE I
REPEAT Y TIMES (
REPEAT I TIMES ( INCREASE V )
INCREASE I REPEAT V TIMES ( CLEAR I CLEAR V )
# GETS DIVIDED NUMBER
REPEAT I TIMES ( INCREASE Z )
)
REPEAT I TIMES ( INCREASE V ) INCREASE I REPEAT V TIMES ( CLEAR I CLEAR V )
CLEAR Y # GC
# Binary representation
#PRINT A
#PRINT B
#PRINT C
#PRINT D
#PRINT E
#PRINT F
#PRINT G
#PRINT H
#PRINT I
#PRINT J
#PRINT K
#PRINT L
#PRINT M
#PRINT N
#PRINT O
#PRINT P
#PRINT Q
#PRINT R
# Main loop
REPEAT W TIMES (
# this could be turned into a binary check: if Z == 1.
REPEAT R TIMES ( INCREASE T )
REPEAT Q TIMES ( CLEAR T )
REPEAT P TIMES ( CLEAR T )
REPEAT O TIMES ( CLEAR T )
REPEAT N TIMES ( CLEAR T )
REPEAT M TIMES ( CLEAR T )
REPEAT L TIMES ( CLEAR T )
REPEAT K TIMES ( CLEAR T )
REPEAT J TIMES ( CLEAR T )
REPEAT I TIMES ( CLEAR T )
REPEAT H TIMES ( CLEAR T )
REPEAT G TIMES ( CLEAR T )
REPEAT F TIMES ( CLEAR T )
REPEAT E TIMES ( CLEAR T )
REPEAT D TIMES ( CLEAR T )
REPEAT C TIMES ( CLEAR T )
REPEAT B TIMES ( CLEAR T )
REPEAT A TIMES ( CLEAR T )
REPEAT T TIMES ( INCREASE U )
INCREASE T
REPEAT U TIMES ( CLEAR T CLEAR U )
# if not 1:
REPEAT T TIMES (
CLEAR T
INCREASE Z
REPEAT R TIMES (
CLEAR Z
#Z = 3Z + 1 (bitwise)
# 3*Z
REPEAT Q TIMES ( INCREASE Y ) REPEAT R TIMES ( INCREASE Q ) REPEAT U TIMES ( INCREASE Q )
REPEAT Q TIMES ( CLEAR Q INCREASE Q CLEAR U REPEAT V TIMES ( CLEAR Q CLEAR U INCREASE U REPEAT T TIMES ( INCREASE Q ) CLEAR T INCREASE T ) INCREASE V )
CLEAR V CLEAR T # GC
REPEAT P TIMES ( INCREASE S ) REPEAT Y TIMES ( INCREASE P ) REPEAT U TIMES ( INCREASE P )
REPEAT P TIMES ( CLEAR P INCREASE P CLEAR U REPEAT V TIMES ( CLEAR P CLEAR U INCREASE U REPEAT T TIMES ( INCREASE P ) CLEAR T INCREASE T ) INCREASE V )
CLEAR V CLEAR T CLEAR Y # GC
REPEAT O TIMES ( INCREASE Y ) REPEAT S TIMES ( INCREASE O ) REPEAT U TIMES ( INCREASE O )
REPEAT O TIMES ( CLEAR O INCREASE O CLEAR U REPEAT V TIMES ( CLEAR O CLEAR U INCREASE U REPEAT T TIMES ( INCREASE O ) CLEAR T INCREASE T ) INCREASE V )
CLEAR V CLEAR T CLEAR S # GC
REPEAT N TIMES ( INCREASE S ) REPEAT Y TIMES ( INCREASE N ) REPEAT U TIMES ( INCREASE N )
REPEAT N TIMES ( CLEAR N INCREASE N CLEAR U REPEAT V TIMES ( CLEAR N CLEAR U INCREASE U REPEAT T TIMES ( INCREASE N ) CLEAR T INCREASE T ) INCREASE V )
CLEAR V CLEAR T CLEAR Y # GC
REPEAT M TIMES ( INCREASE Y ) REPEAT S TIMES ( INCREASE M ) REPEAT U TIMES ( INCREASE M )
REPEAT M TIMES ( CLEAR M INCREASE M CLEAR U REPEAT V TIMES ( CLEAR M CLEAR U INCREASE U REPEAT T TIMES ( INCREASE M ) CLEAR T INCREASE T ) INCREASE V )
CLEAR V CLEAR T CLEAR S # GC
REPEAT L TIMES ( INCREASE S ) REPEAT Y TIMES ( INCREASE L ) REPEAT U TIMES ( INCREASE L )
REPEAT L TIMES ( CLEAR L INCREASE L CLEAR U REPEAT V TIMES ( CLEAR L CLEAR U INCREASE U REPEAT T TIMES ( INCREASE L ) CLEAR T INCREASE T ) INCREASE V )
CLEAR V CLEAR T CLEAR Y # GC
REPEAT K TIMES ( INCREASE Y ) REPEAT S TIMES ( INCREASE K ) REPEAT U TIMES ( INCREASE K )
REPEAT K TIMES ( CLEAR K INCREASE K CLEAR U REPEAT V TIMES ( CLEAR K CLEAR U INCREASE U REPEAT T TIMES ( INCREASE K ) CLEAR T INCREASE T ) INCREASE V )
CLEAR V CLEAR T CLEAR S # GC
REPEAT J TIMES ( INCREASE S ) REPEAT Y TIMES ( INCREASE J ) REPEAT U TIMES ( INCREASE J )
REPEAT J TIMES ( CLEAR J INCREASE J CLEAR U REPEAT V TIMES ( CLEAR J CLEAR U INCREASE U REPEAT T TIMES ( INCREASE J ) CLEAR T INCREASE T ) INCREASE V )
CLEAR V CLEAR T CLEAR Y # GC
REPEAT I TIMES ( INCREASE Y ) REPEAT S TIMES ( INCREASE I ) REPEAT U TIMES ( INCREASE I )
REPEAT I TIMES ( CLEAR I INCREASE I CLEAR U REPEAT V TIMES ( CLEAR I CLEAR U INCREASE U REPEAT T TIMES ( INCREASE I ) CLEAR T INCREASE T ) INCREASE V )
CLEAR V CLEAR T CLEAR S # GC
REPEAT H TIMES ( INCREASE S ) REPEAT Y TIMES ( INCREASE H ) REPEAT U TIMES ( INCREASE H )
REPEAT H TIMES ( CLEAR H INCREASE H CLEAR U REPEAT V TIMES ( CLEAR H CLEAR U INCREASE U REPEAT T TIMES ( INCREASE H ) CLEAR T INCREASE T ) INCREASE V )
CLEAR V CLEAR T CLEAR Y # GC
REPEAT G TIMES ( INCREASE Y ) REPEAT S TIMES ( INCREASE G ) REPEAT U TIMES ( INCREASE G )
REPEAT G TIMES ( CLEAR G INCREASE G CLEAR U REPEAT V TIMES ( CLEAR G CLEAR U INCREASE U REPEAT T TIMES ( INCREASE G ) CLEAR T INCREASE T ) INCREASE V )
CLEAR V CLEAR T CLEAR S # GC
REPEAT F TIMES ( INCREASE S ) REPEAT Y TIMES ( INCREASE F ) REPEAT U TIMES ( INCREASE F )
REPEAT F TIMES ( CLEAR F INCREASE F CLEAR U REPEAT V TIMES ( CLEAR F CLEAR U INCREASE U REPEAT T TIMES ( INCREASE F ) CLEAR T INCREASE T ) INCREASE V )
CLEAR V CLEAR T CLEAR Y # GC
REPEAT E TIMES ( INCREASE Y ) REPEAT S TIMES ( INCREASE E ) REPEAT U TIMES ( INCREASE E )
REPEAT E TIMES ( CLEAR E INCREASE E CLEAR U REPEAT V TIMES ( CLEAR E CLEAR U INCREASE U REPEAT T TIMES ( INCREASE E ) CLEAR T INCREASE T ) INCREASE V )
CLEAR V CLEAR T CLEAR S # GC
REPEAT D TIMES ( INCREASE S ) REPEAT Y TIMES ( INCREASE D ) REPEAT U TIMES ( INCREASE D )
REPEAT D TIMES ( CLEAR D INCREASE D CLEAR U REPEAT V TIMES ( CLEAR D CLEAR U INCREASE U REPEAT T TIMES ( INCREASE D ) CLEAR T INCREASE T ) INCREASE V )
CLEAR V CLEAR T CLEAR Y # GC
REPEAT C TIMES ( INCREASE Y ) REPEAT S TIMES ( INCREASE C ) REPEAT U TIMES ( INCREASE C )
REPEAT C TIMES ( CLEAR C INCREASE C CLEAR U REPEAT V TIMES ( CLEAR C CLEAR U INCREASE U REPEAT T TIMES ( INCREASE C ) CLEAR T INCREASE T ) INCREASE V )
CLEAR V CLEAR T CLEAR S # GC
REPEAT B TIMES ( INCREASE S ) REPEAT Y TIMES ( INCREASE B ) REPEAT U TIMES ( INCREASE B )
REPEAT B TIMES ( CLEAR B INCREASE B CLEAR U REPEAT V TIMES ( CLEAR B CLEAR U INCREASE U REPEAT T TIMES ( INCREASE B ) CLEAR T INCREASE T ) INCREASE V )
CLEAR V CLEAR T CLEAR Y # GC
REPEAT A TIMES ( INCREASE Y ) REPEAT S TIMES ( INCREASE A ) REPEAT U TIMES ( INCREASE A )
REPEAT A TIMES ( CLEAR A INCREASE A CLEAR U REPEAT V TIMES ( CLEAR A CLEAR U INCREASE U REPEAT T TIMES ( INCREASE A ) CLEAR T INCREASE T ) INCREASE V )
CLEAR V CLEAR T CLEAR S # GC
# +1
# U-variable will be carryover.
INCREASE R
REPEAT R TIMES ( REPEAT V TIMES ( INCREASE U CLEAR R ) INCREASE V )
CLEAR V # GC
REPEAT U TIMES (
CLEAR U #GC
INCREASE Q
REPEAT Q TIMES ( REPEAT V TIMES ( INCREASE U CLEAR Q ) INCREASE V )
CLEAR V # GC
REPEAT U TIMES (
CLEAR U #GC
INCREASE P
REPEAT P TIMES ( REPEAT V TIMES ( INCREASE U CLEAR P ) INCREASE V )
CLEAR V # GC
REPEAT U TIMES (
CLEAR U #GC
INCREASE O
REPEAT O TIMES ( REPEAT V TIMES ( INCREASE U CLEAR O ) INCREASE V )
CLEAR V # GC
REPEAT U TIMES (
CLEAR U #GC
INCREASE N
REPEAT N TIMES ( REPEAT V TIMES ( INCREASE U CLEAR N ) INCREASE V )
CLEAR V # GC
REPEAT U TIMES (
CLEAR U #GC
INCREASE M
REPEAT M TIMES ( REPEAT V TIMES ( INCREASE U CLEAR M ) INCREASE V )
CLEAR V # GC
REPEAT U TIMES (
CLEAR U #GC
INCREASE L
REPEAT L TIMES ( REPEAT V TIMES ( INCREASE U CLEAR L ) INCREASE V )
CLEAR V # GC
REPEAT U TIMES (
CLEAR U #GC
INCREASE K
REPEAT K TIMES ( REPEAT V TIMES ( INCREASE U CLEAR K ) INCREASE V )
CLEAR V # GC
REPEAT U TIMES (
CLEAR U #GC
INCREASE J
REPEAT J TIMES ( REPEAT V TIMES ( INCREASE U CLEAR J ) INCREASE V )
CLEAR V # GC
REPEAT U TIMES (
CLEAR U #GC
INCREASE I
REPEAT I TIMES ( REPEAT V TIMES ( INCREASE U CLEAR I ) INCREASE V )
CLEAR V # GC
REPEAT U TIMES (
CLEAR U #GC
INCREASE H
REPEAT H TIMES ( REPEAT V TIMES ( INCREASE U CLEAR H ) INCREASE V )
CLEAR V # GC
REPEAT U TIMES (
CLEAR U #GC
INCREASE G
REPEAT G TIMES ( REPEAT V TIMES ( INCREASE U CLEAR G ) INCREASE V )
CLEAR V # GC
REPEAT U TIMES (
CLEAR U #GC
INCREASE F
REPEAT F TIMES ( REPEAT V TIMES ( INCREASE U CLEAR F ) INCREASE V )
CLEAR V # GC
REPEAT U TIMES (
CLEAR U #GC
INCREASE E
REPEAT E TIMES ( REPEAT V TIMES ( INCREASE U CLEAR E ) INCREASE V )
CLEAR V # GC
REPEAT U TIMES (
CLEAR U #GC
INCREASE D
REPEAT D TIMES ( REPEAT V TIMES ( INCREASE U CLEAR D ) INCREASE V )
CLEAR V # GC
REPEAT U TIMES (
CLEAR U #GC
INCREASE C
REPEAT C TIMES ( REPEAT V TIMES ( INCREASE U CLEAR C ) INCREASE V )
CLEAR V # GC
REPEAT U TIMES (
CLEAR U #GC
INCREASE B
REPEAT B TIMES ( REPEAT V TIMES ( INCREASE U CLEAR B ) INCREASE V )
CLEAR V # GC
REPEAT U TIMES (
CLEAR U #GC
INCREASE A
REPEAT A TIMES ( REPEAT V TIMES ( INCREASE U CLEAR A ) INCREASE V )
CLEAR V # GC
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
CLEAR U #GC is this really needed? I think its needed
)
#ABCDEFGHIJKLMNOPQR
# IF NUM % 2 == 0
REPEAT Z TIMES (
CLEAR Z # GC
# Z = Z/2 (bitwise)
CLEAR R REPEAT Q TIMES ( INCREASE R )
CLEAR Q REPEAT P TIMES ( INCREASE Q )
CLEAR P REPEAT O TIMES ( INCREASE P )
CLEAR O REPEAT N TIMES ( INCREASE O )
CLEAR N REPEAT M TIMES ( INCREASE N )
CLEAR M REPEAT L TIMES ( INCREASE M )
CLEAR L REPEAT K TIMES ( INCREASE L )
CLEAR K REPEAT J TIMES ( INCREASE K )
CLEAR J REPEAT I TIMES ( INCREASE J )
CLEAR I REPEAT H TIMES ( INCREASE I )
CLEAR H REPEAT G TIMES ( INCREASE H )
CLEAR G REPEAT F TIMES ( INCREASE G )
CLEAR F REPEAT E TIMES ( INCREASE F )
CLEAR E REPEAT D TIMES ( INCREASE E )
CLEAR D REPEAT C TIMES ( INCREASE D )
CLEAR C REPEAT B TIMES ( INCREASE C )
CLEAR B REPEAT A TIMES ( INCREASE B )
REPEAT A TIMES ( CLEAR A )
)
# IF NUM % 2 != 0
# TURN BINARY INTO DECIMAL AND PRINT
CLEAR X
REPEAT A TIMES ( INCREASE X )
REPEAT X TIMES ( INCREASE X )
REPEAT B TIMES ( INCREASE X )
REPEAT X TIMES ( INCREASE X )
REPEAT C TIMES ( INCREASE X )
REPEAT X TIMES ( INCREASE X )
REPEAT D TIMES ( INCREASE X )
REPEAT X TIMES ( INCREASE X )
REPEAT E TIMES ( INCREASE X )
REPEAT X TIMES ( INCREASE X )
REPEAT F TIMES ( INCREASE X )
REPEAT X TIMES ( INCREASE X )
REPEAT G TIMES ( INCREASE X )
REPEAT X TIMES ( INCREASE X )
REPEAT H TIMES ( INCREASE X )
REPEAT X TIMES ( INCREASE X )
REPEAT I TIMES ( INCREASE X )
REPEAT X TIMES ( INCREASE X )
REPEAT J TIMES ( INCREASE X )
REPEAT X TIMES ( INCREASE X )
REPEAT K TIMES ( INCREASE X )
REPEAT X TIMES ( INCREASE X )
REPEAT L TIMES ( INCREASE X )
REPEAT X TIMES ( INCREASE X )
REPEAT M TIMES ( INCREASE X )
REPEAT X TIMES ( INCREASE X )
REPEAT N TIMES ( INCREASE X )
REPEAT X TIMES ( INCREASE X )
REPEAT O TIMES ( INCREASE X )
REPEAT X TIMES ( INCREASE X )
REPEAT P TIMES ( INCREASE X )
REPEAT X TIMES ( INCREASE X )
REPEAT Q TIMES ( INCREASE X )
REPEAT X TIMES ( INCREASE X )
REPEAT R TIMES ( INCREASE X )
PRINT X
)
)