# 814750 commands with 1000 as starting number # Used to detect when to stop loop INCREASE L # Create a big number (180) to loop many times (number 871 takes the most steps: 178) INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q 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 the initial value PRINT X # Stop if X is 1 initially REPEAT X TIMES ( CLEAR L REPEAT F TIMES ( INCREASE L CLEAR F ) INCREASE F ) # Start the main loop REPEAT Q TIMES ( REPEAT L TIMES ( # Clear variables before re-use (B doesn't need to be cleared because it will get cleared anyways) CLEAR O CLEAR T CLEAR V CLEAR Y # These needs to be 1 for the odd-even loop to work INCREASE T INCREASE O # Check if X is odd or even, and save the halved value of X in V REPEAT X TIMES ( INCREASE B REPEAT T TIMES ( CLEAR B CLEAR T ) REPEAT B TIMES ( INCREASE V INCREASE T ) ) # This only runs if X was even because in that case T is 1 instead of 0 REPEAT T TIMES ( # If X was even, set X to the halved value stored in V REPEAT T TIMES ( CLEAR X REPEAT V TIMES ( INCREASE X ) ) # If X was even, dont run the odd-loop CLEAR O ) # Run only if even-loop wasn't ran (so X was odd) REPEAT O TIMES ( # Multiply X by 3 and add 1 REPEAT X TIMES ( INCREASE X INCREASE X ) INCREASE X ) # Print the resulting value PRINT X # Stop if X is 1 (only do the check if X was even to save computations)) REPEAT T TIMES ( CLEAR F REPEAT X TIMES ( CLEAR L REPEAT F TIMES ( INCREASE L CLEAR F ) INCREASE F ) ) ) )