# I = 57 INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I INCREASE Q REPEAT I TIMES ( # Stop calculating if Q = 0 REPEAT Q TIMES ( PRINT X # Clear variables for calculation CLEAR A CLEAR T CLEAR C # Parity check loop determines if X is even or odd # After X iterations: # A = 1 if X is odd, 0 if even # T = A (Helper variable) # C = X // 2 REPEAT X TIMES ( INCREASE T # Increase C if A = 1 and set T to 0 REPEAT A TIMES ( CLEAR T CLEAR A INCREASE C ) # Increase A if T = 1 REPEAT T TIMES ( INCREASE A ) ) REPEAT A TIMES ( CLEAR P INCREASE P REPEAT C TIMES ( CLEAR P ) # If X = 1, P = 0 # Decide whether to update X: Q = 1 unless X = 1 REPEAT P TIMES ( CLEAR Q ) # Decide whether to update X: Q = 1 unless X = 1 # if Q = 1 update X to next Collatz number REPEAT Q TIMES ( # odd X: 3 * X + 1 & C = X * 1.5 REPEAT X TIMES ( INCREASE C INCREASE X INCREASE X ) INCREASE X INCREASE C PRINT X ) ) #___________________ REPEAT Q TIMES ( PRINT C # Clear variables for calculation CLEAR A CLEAR T CLEAR X # Parity check loop determines if X is even or odd # After X iterations: # A = 1 if X is odd, 0 if even # T = A (Helper variable) # X = C // 2 REPEAT C TIMES ( INCREASE T # Increase X if A = 1 and set T to 0 REPEAT A TIMES ( CLEAR T CLEAR A INCREASE X ) # Increase A if T = 1 REPEAT T TIMES ( INCREASE A ) ) REPEAT A TIMES ( CLEAR P INCREASE P REPEAT X TIMES ( CLEAR P ) # If X = 1, P = 0 # Decide whether to update X: Q = 1 unless C = 1 REPEAT P TIMES ( CLEAR Q ) # Decide whether to update X: Q = 1 unless C = 1 # if Q = 1 update C to next Collatz number REPEAT Q TIMES ( # odd C: 3 * C + 1 & X = C * 1.5 REPEAT C TIMES ( INCREASE X INCREASE C INCREASE C ) INCREASE C INCREASE X PRINT C ) ) ) ) )