# Collatz with fewer commands # Loop enable INCREASE L # Q = 180 (min steps headroom; linear build is optimal) INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q # Print initial value PRINT X # Main loop with early-break via L REPEAT Q TIMES ( REPEAT L TIMES ( # Prepare flags and work vars CLEAR O CLEAR T CLEAR V CLEAR S CLEAR M CLEAR R INCREASE T # T = 1 (needed by parity scan) INCREASE O # O = 1 (odd branch enabled; will be cleared if even) # Scan X once: # - T ends 1 if X even, 0 if odd # - V = floor(X/2) # - M becomes >0 iff V >= 2 (i.e., original X >= 4) REPEAT X TIMES ( INCREASE B REPEAT T TIMES ( CLEAR B CLEAR T ) REPEAT B TIMES ( INCREASE V INCREASE T REPEAT S TIMES ( INCREASE M CLEAR S ) INCREASE S ) ) # Even case: X = V; if result is 1 (i.e., original X was 2), clear L to stop REPEAT T TIMES ( INCREASE R # R = 1 REPEAT M TIMES ( # If V >= 2 then M > 0 -> clear R CLEAR R ) REPEAT R TIMES ( # R == 1 iff V <= 1; with X > 0 and even -> V == 1 CLEAR L ) CLEAR X REPEAT V TIMES ( INCREASE X ) CLEAR O # Suppress odd branch ) # Odd case: X = 3X + 1 (minimal increments) REPEAT O TIMES ( REPEAT X TIMES ( INCREASE X INCREASE X ) INCREASE X ) PRINT X ) )