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 ) )