# Q = 114 # 385 successful iterations INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q # 10 INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q # 20 INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q # 30 INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q # 40 INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q # 50 INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q # 60 INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q # 70 INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q # 80 INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q # 90 INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q # 100 INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q INCREASE Q # 110 INCREASE Q INCREASE Q INCREASE Q INCREASE Q # 114 #CLEAR S # s <= (x > 0) assume empty #CLEAR L assume empty #CLEAR M assume empty INCREASE M REPEAT X TIMES ( REPEAT L TIMES ( CLEAR L INCREASE S ) REPEAT M TIMES ( CLEAR M INCREASE L ) ) PRINT X REPEAT Q TIMES ( # if x > 1 REPEAT S TIMES ( # o: store x / 2 CLEAR O # a: even # b: odd # c: pass-through CLEAR A INCREASE A CLEAR B CLEAR C REPEAT X TIMES ( #CLEAR T # copy t <= b #REPEAT B TIMES ( INCREASE T ) # flip-flop a/b REPEAT A TIMES ( CLEAR A INCREASE C ) REPEAT B TIMES ( CLEAR B INCREASE A INCREASE O ) REPEAT C TIMES ( CLEAR C INCREASE B ) ) # if a REPEAT A TIMES ( # out alrdy has x / 2 # copy x <= out CLEAR X REPEAT O TIMES ( INCREASE X ) ) # else (if b) REPEAT B TIMES ( # x += 0.5x # o += o: o = x-1 REPEAT O TIMES ( INCREASE X INCREASE O ) INCREASE O # o = x # o = 3x REPEAT O TIMES ( INCREASE O INCREASE O ) # x += 1 INCREASE X # o += 1 INCREASE O # print o: 3x+1 PRINT O ) # mandatory print PRINT X # check x/2 > 1 (for next iteration) CLEAR S # s <= (x > 0) CLEAR L CLEAR M INCREASE M REPEAT X TIMES ( REPEAT L TIMES ( CLEAR L INCREASE S ) REPEAT M TIMES ( CLEAR M INCREASE L ) ) ) )