# --- 1. SETUP CONSTANTS ---
# O = 1
INCREASE O
# M = 512 ( Loop Limit )
# 512 iterations is enough because Odd steps now cover 2 sequence steps at once.
INCREASE M
REPEAT M TIMES ( INCREASE M )
REPEAT M TIMES ( INCREASE M )
REPEAT M TIMES ( INCREASE M )
REPEAT M TIMES ( INCREASE M )
REPEAT M TIMES ( INCREASE M )
REPEAT M TIMES ( INCREASE M )
REPEAT M TIMES ( INCREASE M )
REPEAT M TIMES ( INCREASE M )
REPEAT M TIMES ( INCREASE M )
# F = 1 ( Run Flag )
CLEAR F
INCREASE F
# --- 2. MAIN LOOP ---
REPEAT M TIMES (
# --- STEP A: PRINT CURRENT X ---
REPEAT F TIMES (
PRINT X
)
# --- STEP B: PING-PONG DIVISION ---
# Calculate Q ( Quotient ) and R ( Remainder )
# Cost: 3.5 ops per X ( Very Fast )
REPEAT F TIMES (
CLEAR Q
CLEAR R
CLEAR T
REPEAT X TIMES (
# T starts at 0. Set to 1.
INCREASE T
# If R=1: Pair found. Q++, R=0, T=0.
REPEAT R TIMES (
INCREASE Q
CLEAR R
CLEAR T
)
# If R=0: No pair. R=1, T=0.
REPEAT T TIMES (
INCREASE R
CLEAR T
)
)
# --- STEP C: STOP CHECK ---
# If Q == 0 ( meaning X was 1 ), we stop.
# Uses Z as inverter.
CLEAR Z
INCREASE Z
REPEAT Q TIMES ( CLEAR Z )
REPEAT Z TIMES ( CLEAR F )
# --- STEP D: DOUBLE JUMP UPDATE ---
# We branch based on R ( Odd/Even )
REPEAT F TIMES (
# Create Even Flag ( E )
CLEAR E
INCREASE E
REPEAT R TIMES ( CLEAR E )
# --- CASE 1: ODD ( R=1 ) ---
# Sequence: X -> 3X+1 -> ( 3X+1 )/2
# We PRINT the intermediate ( 3X+1 ) and SET X to ( 3X+1 )/2
# This skips the expensive division of the large number.
REPEAT R TIMES (
CLEAR X
CLEAR V
# We have Q ( where X = 2Q + 1 )
# Next X should be ( 3( 2Q+1 ) + 1 ) / 2 = ( 6Q + 4 ) / 2 = 3Q + 2
# Intermediate V should be 6Q + 4
# 1. Build New X ( 3Q + 2 )
REPEAT Q TIMES (
INCREASE X
INCREASE X
INCREASE X
)
INCREASE X
INCREASE X
# 2. Build Intermediate V from New X
# V = 2 * X. ( Since V / 2 = X )
REPEAT X TIMES (
INCREASE V
INCREASE V
)
# 3. Print Intermediate
PRINT V
# X is already set to the next value ( 3Q + 2 ). Done.
)
# --- CASE 2: EVEN ( R=0 ) ---
# Sequence: X -> X / 2
# X is simply Q.
REPEAT E TIMES (
CLEAR X
REPEAT Q TIMES ( INCREASE X )
)
)
)
)