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