#1000 # M = 3 INCREASE M INCREASE M INCREASE M # X = const start value # Y = current value to be printed and changed next iteration # B = isn't even # A = isn't even (1 for isn't) # G = temporary value for computed value # I = is even # S = Should continue INCREASE S PRINT X # print first value REPEAT X TIMES ( INCREASE Y ) REPEAT X TIMES ( REPEAT S TIMES ( CLEAR S INCREASE S ) # set to one if not zero REPEAT S TIMES ( CLEAR S # IS EVEN? REPEAT Y TIMES ( INCREASE B REPEAT A TIMES ( CLEAR A CLEAR B ) REPEAT B TIMES ( INCREASE A ) ) INCREASE I # isn't even so 3xY+1 REPEAT B TIMES ( CLEAR I REPEAT M TIMES ( # 3 times y REPEAT Y TIMES ( INCREASE G ) ) INCREASE G # Y+1 ) # is even so Y/2 REPEAT I TIMES ( REPEAT Y TIMES ( INCREASE B REPEAT A TIMES ( CLEAR A CLEAR B ) REPEAT B TIMES ( INCREASE A INCREASE G ) ) ) CLEAR I # SET Y AS COMPUTED VALUE CLEAR Y INCREASE I # This is so stupid lol REPEAT G TIMES ( INCREASE Y INCREASE S REPEAT I TIMES ( CLEAR S CLEAR I ) ) # CLEAN UP FOR NEXT ITERATION CLEAR G CLEAR A CLEAR B CLEAR I PRINT Y ) )