#17 INCREASE M PRINT X REPEAT X TIMES ( INCREASE S REPEAT X TIMES ( INCREASE P ) ) REPEAT S TIMES ( CLEAR S INCREASE S REPEAT M TIMES ( CLEAR M CLEAR S ) ) INCREASE M INCREASE M REPEAT P TIMES ( REPEAT S TIMES ( # Is even? and halve anyways CLEAR G CLEAR B CLEAR A REPEAT X TIMES ( INCREASE B REPEAT A TIMES ( CLEAR A CLEAR B ) REPEAT B TIMES ( INCREASE A INCREASE G ) ) CLEAR I INCREASE I # Was uneven??? REPEAT B TIMES ( CLEAR I REPEAT X TIMES ( REPEAT M TIMES ( INCREASE X ) ) INCREASE X ) REPEAT I TIMES ( PRINT G # if was half print half # 1 always comes after 2 so check if we should continue CLEAR S CLEAR X REPEAT G TIMES ( INCREASE X INCREASE S REPEAT I TIMES ( CLEAR S CLEAR I ) ) # Set S=G-1 and X=S REPEAT S TIMES( CLEAR S INCREASE S ) # continue or not if X was 1 ) REPEAT B TIMES ( PRINT X ) # was x*3+1 so print ) )