PRINT X #----------------------------------------------------------------------------- # Base 2 103 # X == 1 37 # Z = 180 18 # Base 10 274 # 3x + 1 389 # x /= 2 52 # Misc 23 # Total 933 #----------------------------------------------------------------------------- #----------------------------------------------------------------------------- # Convert X to base 2 # The value of X is preserved by using S instead #----------------------------------------------------------------------------- REPEAT X TIMES ( INCREASE S REPEAT A TIMES ( REPEAT B TIMES ( REPEAT C TIMES ( REPEAT D TIMES ( REPEAT E TIMES ( REPEAT F TIMES ( REPEAT G TIMES ( REPEAT H TIMES ( REPEAT I TIMES ( REPEAT J TIMES ( CLEAR I CLEAR J ) REPEAT I TIMES ( CLEAR I INCREASE J ) CLEAR H ) REPEAT H TIMES ( CLEAR H INCREASE I ) CLEAR G ) REPEAT G TIMES ( CLEAR G INCREASE H ) CLEAR F ) REPEAT F TIMES ( CLEAR F INCREASE G ) CLEAR E ) REPEAT E TIMES ( CLEAR E INCREASE F ) CLEAR D ) REPEAT D TIMES ( CLEAR D INCREASE E ) CLEAR C ) REPEAT C TIMES ( CLEAR C INCREASE D ) CLEAR B ) REPEAT B TIMES ( CLEAR B INCREASE C ) CLEAR A ) REPEAT A TIMES ( CLEAR A INCREASE B ) CLEAR S ) REPEAT S TIMES ( INCREASE A ) ) CLEAR S #----------------------------------------------------------------------------- # Check if X = 1 #----------------------------------------------------------------------------- INCREASE S REPEAT B TIMES ( CLEAR S ) REPEAT C TIMES ( CLEAR S ) REPEAT D TIMES ( CLEAR S ) REPEAT E TIMES ( CLEAR S ) REPEAT F TIMES ( CLEAR S ) REPEAT G TIMES ( CLEAR S ) REPEAT H TIMES ( CLEAR S ) REPEAT I TIMES ( CLEAR S ) REPEAT J TIMES ( CLEAR S ) INCREASE W REPEAT S TIMES ( CLEAR S CLEAR W ) #----------------------------------------------------------------------------- # Z = 180 #----------------------------------------------------------------------------- INCREASE Z INCREASE S INCREASE S REPEAT Z TIMES ( REPEAT S TIMES ( INCREASE Z ) ) REPEAT Z TIMES ( REPEAT S TIMES ( INCREASE Z ) ) INCREASE S REPEAT Z TIMES ( REPEAT S TIMES ( INCREASE Z ) ) INCREASE S REPEAT Z TIMES ( REPEAT S TIMES ( INCREASE Z ) ) CLEAR S REPEAT Z TIMES ( REPEAT W TIMES ( INCREASE Y REPEAT A TIMES ( CLEAR Y #----------------------------------------------------------------------------- # X = 3X + 1 #----------------------------------------------------------------------------- INCREASE T REPEAT A TIMES ( CLEAR A CLEAR T INCREASE S ) REPEAT B TIMES ( INCREASE V ) REPEAT T TIMES ( CLEAR T INCREASE A ) REPEAT S TIMES ( CLEAR S INCREASE T ) REPEAT B TIMES ( CLEAR B INCREASE U REPEAT T TIMES ( CLEAR U CLEAR T INCREASE S ) REPEAT U TIMES ( INCREASE T ) ) REPEAT C TIMES ( INCREASE U REPEAT T TIMES ( CLEAR U CLEAR T INCREASE S ) REPEAT U TIMES ( INCREASE T CLEAR U ) ) REPEAT V TIMES ( CLEAR V INCREASE B ) REPEAT S TIMES ( CLEAR S INCREASE V ) REPEAT C TIMES ( CLEAR C CLEAR V INCREASE S ) REPEAT D TIMES ( INCREASE U REPEAT V TIMES ( CLEAR U CLEAR V INCREASE S ) REPEAT U TIMES ( INCREASE V CLEAR U ) ) REPEAT T TIMES ( CLEAR T INCREASE C ) REPEAT S TIMES ( CLEAR S INCREASE T ) REPEAT D TIMES ( CLEAR D INCREASE U REPEAT T TIMES ( CLEAR U CLEAR T INCREASE S ) REPEAT U TIMES ( INCREASE T ) ) REPEAT E TIMES ( INCREASE U REPEAT T TIMES ( CLEAR U CLEAR T INCREASE S ) REPEAT U TIMES ( INCREASE T ) ) REPEAT V TIMES ( CLEAR V INCREASE D ) REPEAT S TIMES ( CLEAR S INCREASE V ) CLEAR U REPEAT E TIMES ( CLEAR E INCREASE U REPEAT V TIMES ( CLEAR U CLEAR V INCREASE S ) REPEAT U TIMES ( INCREASE V ) ) REPEAT F TIMES ( INCREASE U REPEAT V TIMES ( CLEAR U CLEAR V INCREASE S ) REPEAT U TIMES ( INCREASE V ) ) REPEAT T TIMES ( CLEAR T INCREASE E ) REPEAT S TIMES ( CLEAR S INCREASE T ) CLEAR U REPEAT F TIMES ( CLEAR F INCREASE U REPEAT T TIMES ( CLEAR U CLEAR T INCREASE S ) REPEAT U TIMES ( INCREASE T ) ) REPEAT G TIMES ( INCREASE U REPEAT T TIMES ( CLEAR U CLEAR T INCREASE S ) REPEAT U TIMES ( INCREASE T ) ) REPEAT V TIMES ( CLEAR V INCREASE F ) REPEAT S TIMES ( CLEAR S INCREASE V ) CLEAR U REPEAT G TIMES ( CLEAR G INCREASE U REPEAT V TIMES ( CLEAR U CLEAR V INCREASE S ) REPEAT U TIMES ( INCREASE V ) ) REPEAT H TIMES ( INCREASE U REPEAT V TIMES ( CLEAR U CLEAR V INCREASE S ) REPEAT U TIMES ( INCREASE V ) ) REPEAT T TIMES ( CLEAR T INCREASE G ) REPEAT S TIMES ( CLEAR S INCREASE T ) CLEAR U REPEAT H TIMES ( CLEAR H INCREASE U REPEAT T TIMES ( CLEAR U CLEAR T INCREASE S ) REPEAT U TIMES ( INCREASE T ) ) REPEAT I TIMES ( INCREASE U REPEAT T TIMES ( CLEAR U CLEAR T INCREASE S ) REPEAT U TIMES ( INCREASE T ) ) REPEAT V TIMES ( CLEAR V INCREASE H ) REPEAT S TIMES ( CLEAR S INCREASE V ) CLEAR U REPEAT I TIMES ( CLEAR I INCREASE U REPEAT V TIMES ( CLEAR U CLEAR V INCREASE S ) REPEAT U TIMES ( INCREASE V ) ) REPEAT J TIMES ( INCREASE U REPEAT V TIMES ( CLEAR U CLEAR V INCREASE S ) REPEAT U TIMES ( INCREASE V ) ) REPEAT T TIMES ( CLEAR T INCREASE I ) REPEAT S TIMES ( CLEAR S INCREASE T ) CLEAR U REPEAT J TIMES ( CLEAR J INCREASE U REPEAT T TIMES ( CLEAR U CLEAR T INCREASE S ) REPEAT U TIMES ( INCREASE T ) ) REPEAT K TIMES ( INCREASE U REPEAT T TIMES ( CLEAR U CLEAR T INCREASE S ) REPEAT U TIMES ( INCREASE T ) ) REPEAT V TIMES ( CLEAR V INCREASE J ) REPEAT S TIMES ( CLEAR S INCREASE V ) CLEAR U REPEAT K TIMES ( CLEAR K INCREASE U REPEAT V TIMES ( CLEAR U CLEAR V INCREASE S ) REPEAT U TIMES ( INCREASE V ) ) REPEAT L TIMES ( INCREASE U REPEAT V TIMES ( CLEAR U CLEAR V INCREASE S ) REPEAT U TIMES ( INCREASE V ) ) REPEAT T TIMES ( CLEAR T INCREASE K ) REPEAT S TIMES ( CLEAR S INCREASE T ) CLEAR U REPEAT L TIMES ( CLEAR L INCREASE U REPEAT T TIMES ( CLEAR U CLEAR T INCREASE S ) REPEAT U TIMES ( INCREASE T ) ) REPEAT M TIMES ( INCREASE U REPEAT T TIMES ( CLEAR U CLEAR T INCREASE S ) REPEAT U TIMES ( INCREASE T ) ) REPEAT V TIMES ( CLEAR V INCREASE L ) REPEAT S TIMES ( CLEAR S INCREASE V ) CLEAR U REPEAT M TIMES ( CLEAR M INCREASE U REPEAT V TIMES ( CLEAR U CLEAR V INCREASE S ) REPEAT U TIMES ( INCREASE V ) ) REPEAT N TIMES ( INCREASE U REPEAT V TIMES ( CLEAR U CLEAR V INCREASE S ) REPEAT U TIMES ( INCREASE V ) ) REPEAT T TIMES ( CLEAR T INCREASE M ) REPEAT S TIMES ( CLEAR S INCREASE T ) CLEAR U REPEAT N TIMES ( CLEAR N INCREASE U REPEAT T TIMES ( CLEAR U CLEAR T INCREASE S ) REPEAT U TIMES ( INCREASE T ) ) REPEAT O TIMES ( INCREASE U REPEAT T TIMES ( CLEAR U CLEAR T INCREASE S ) REPEAT U TIMES ( INCREASE T ) ) REPEAT V TIMES ( CLEAR V INCREASE N ) REPEAT S TIMES ( CLEAR S INCREASE V ) CLEAR U REPEAT O TIMES ( CLEAR O INCREASE U REPEAT V TIMES ( CLEAR U CLEAR V INCREASE S ) REPEAT U TIMES ( INCREASE V ) ) REPEAT P TIMES ( INCREASE U REPEAT V TIMES ( CLEAR U CLEAR V INCREASE S ) REPEAT U TIMES ( INCREASE V ) ) REPEAT T TIMES ( CLEAR T INCREASE O ) REPEAT S TIMES ( CLEAR S INCREASE T ) CLEAR U REPEAT P TIMES ( CLEAR P INCREASE U REPEAT T TIMES ( CLEAR U CLEAR T INCREASE S ) REPEAT U TIMES ( INCREASE T ) ) REPEAT Q TIMES ( INCREASE U REPEAT T TIMES ( CLEAR U CLEAR T INCREASE S ) REPEAT U TIMES ( INCREASE T ) ) REPEAT V TIMES ( CLEAR V INCREASE P ) REPEAT S TIMES ( CLEAR S INCREASE V ) CLEAR U REPEAT Q TIMES ( CLEAR Q INCREASE U REPEAT V TIMES ( CLEAR U CLEAR V ) REPEAT U TIMES ( INCREASE V ) ) REPEAT R TIMES ( INCREASE U REPEAT V TIMES ( CLEAR U CLEAR V ) REPEAT U TIMES ( INCREASE V CLEAR U ) ) REPEAT T TIMES ( CLEAR T INCREASE Q ) CLEAR R REPEAT V TIMES ( CLEAR V INCREASE R ) REPEAT X TIMES ( INCREASE X INCREASE X ) INCREASE X PRINT X ) REPEAT Y TIMES ( #----------------------------------------------------------------------------- # X /= 2 #----------------------------------------------------------------------------- CLEAR A REPEAT B TIMES ( CLEAR B INCREASE A ) REPEAT C TIMES ( CLEAR C INCREASE B ) REPEAT D TIMES ( CLEAR D INCREASE C ) REPEAT E TIMES ( CLEAR E INCREASE D ) REPEAT F TIMES ( CLEAR F INCREASE E ) REPEAT G TIMES ( CLEAR G INCREASE F ) REPEAT H TIMES ( CLEAR H INCREASE G ) REPEAT I TIMES ( CLEAR I INCREASE H ) REPEAT J TIMES ( CLEAR J INCREASE I ) REPEAT K TIMES ( CLEAR K INCREASE J ) REPEAT L TIMES ( CLEAR L INCREASE K ) REPEAT M TIMES ( CLEAR M INCREASE L ) REPEAT N TIMES ( CLEAR N INCREASE M ) REPEAT O TIMES ( CLEAR O INCREASE N ) REPEAT P TIMES ( CLEAR P INCREASE O ) REPEAT Q TIMES ( CLEAR Q INCREASE P ) REPEAT R TIMES ( CLEAR R INCREASE Q ) #----------------------------------------------------------------------------- # Mark highest bit with 2 and ensure x not 1 #----------------------------------------------------------------------------- INCREASE S REPEAT Q TIMES ( REPEAT S TIMES ( CLEAR S INCREASE Q ) ) REPEAT P TIMES ( REPEAT S TIMES ( CLEAR S INCREASE P ) ) REPEAT O TIMES ( REPEAT S TIMES ( CLEAR S INCREASE O ) ) REPEAT N TIMES ( REPEAT S TIMES ( CLEAR S INCREASE N ) ) REPEAT M TIMES ( REPEAT S TIMES ( CLEAR S INCREASE M ) ) REPEAT L TIMES ( REPEAT S TIMES ( CLEAR S INCREASE L ) ) REPEAT K TIMES ( REPEAT S TIMES ( CLEAR S INCREASE K ) ) REPEAT J TIMES ( REPEAT S TIMES ( CLEAR S INCREASE J ) ) REPEAT I TIMES ( REPEAT S TIMES ( CLEAR S INCREASE I ) ) REPEAT H TIMES ( REPEAT S TIMES ( CLEAR S INCREASE H ) ) REPEAT G TIMES ( REPEAT S TIMES ( CLEAR S INCREASE G ) ) REPEAT F TIMES ( REPEAT S TIMES ( CLEAR S INCREASE F ) ) REPEAT E TIMES ( REPEAT S TIMES ( CLEAR S INCREASE E ) ) REPEAT D TIMES ( REPEAT S TIMES ( CLEAR S INCREASE D ) ) REPEAT C TIMES ( REPEAT S TIMES ( CLEAR S INCREASE C ) ) REPEAT B TIMES ( REPEAT S TIMES ( CLEAR S INCREASE B ) ) REPEAT S TIMES ( CLEAR W ) REPEAT A TIMES ( REPEAT S TIMES ( CLEAR S INCREASE A ) ) CLEAR S #----------------------------------------------------------------------------- # Binary to decimal recursive #----------------------------------------------------------------------------- CLEAR X INCREASE S REPEAT A TIMES ( INCREASE T REPEAT U TIMES ( CLEAR T CLEAR S ) REPEAT T TIMES ( CLEAR T INCREASE U INCREASE X ) ) REPEAT S TIMES ( CLEAR U REPEAT B TIMES ( INCREASE T REPEAT U TIMES ( CLEAR T CLEAR S CLEAR B INCREASE B ) REPEAT T TIMES ( CLEAR T INCREASE U INCREASE X INCREASE X ) ) REPEAT S TIMES ( CLEAR U REPEAT C TIMES ( INCREASE T REPEAT U TIMES ( CLEAR T CLEAR S CLEAR C INCREASE C ) REPEAT T TIMES ( CLEAR T INCREASE U INCREASE X INCREASE X INCREASE X INCREASE X ) ) REPEAT S TIMES ( CLEAR U INCREASE V INCREASE V INCREASE Y INCREASE Y INCREASE Y REPEAT D TIMES ( INCREASE T REPEAT U TIMES ( CLEAR T CLEAR S CLEAR D INCREASE D ) REPEAT T TIMES ( CLEAR T INCREASE U REPEAT V TIMES ( REPEAT Y TIMES ( INCREASE X ) ) ) ) REPEAT S TIMES ( CLEAR U REPEAT V TIMES ( INCREASE V ) REPEAT E TIMES ( INCREASE T REPEAT U TIMES ( CLEAR T CLEAR S CLEAR E INCREASE E ) REPEAT T TIMES ( CLEAR T INCREASE U REPEAT V TIMES ( REPEAT Y TIMES ( INCREASE X ) ) ) ) REPEAT S TIMES ( CLEAR U REPEAT Y TIMES ( INCREASE Y ) REPEAT F TIMES ( INCREASE T REPEAT U TIMES ( CLEAR T CLEAR S CLEAR F INCREASE F ) REPEAT T TIMES ( CLEAR T INCREASE U REPEAT V TIMES ( REPEAT Y TIMES ( INCREASE X ) ) ) ) REPEAT S TIMES ( CLEAR U REPEAT V TIMES ( INCREASE V ) REPEAT G TIMES ( INCREASE T REPEAT U TIMES ( CLEAR T CLEAR S CLEAR G INCREASE G ) REPEAT T TIMES ( CLEAR T INCREASE U REPEAT V TIMES ( REPEAT Y TIMES ( INCREASE X ) ) ) ) REPEAT S TIMES ( CLEAR U REPEAT Y TIMES ( INCREASE Y ) REPEAT H TIMES ( INCREASE T REPEAT U TIMES ( CLEAR T CLEAR S CLEAR H INCREASE H ) REPEAT T TIMES ( CLEAR T INCREASE U REPEAT V TIMES ( REPEAT Y TIMES ( INCREASE X ) ) ) ) REPEAT S TIMES ( CLEAR U REPEAT V TIMES ( INCREASE V ) REPEAT I TIMES ( INCREASE T REPEAT U TIMES ( CLEAR T CLEAR S CLEAR I INCREASE I ) REPEAT T TIMES ( CLEAR T INCREASE U REPEAT V TIMES ( REPEAT Y TIMES ( INCREASE X ) ) ) ) REPEAT S TIMES ( CLEAR U REPEAT Y TIMES ( INCREASE Y ) REPEAT J TIMES ( INCREASE T REPEAT U TIMES ( CLEAR T CLEAR S CLEAR J INCREASE J ) REPEAT T TIMES ( CLEAR T INCREASE U REPEAT V TIMES ( REPEAT Y TIMES ( INCREASE X ) ) ) ) REPEAT S TIMES ( CLEAR U REPEAT V TIMES ( INCREASE V ) REPEAT K TIMES ( INCREASE T REPEAT U TIMES ( CLEAR T CLEAR S CLEAR K INCREASE K ) REPEAT T TIMES ( CLEAR T INCREASE U REPEAT V TIMES ( REPEAT Y TIMES ( INCREASE X ) ) ) ) REPEAT S TIMES ( CLEAR U REPEAT Y TIMES ( INCREASE Y ) REPEAT L TIMES ( INCREASE T REPEAT U TIMES ( CLEAR T CLEAR S CLEAR L INCREASE L ) REPEAT T TIMES ( CLEAR T INCREASE U REPEAT V TIMES ( REPEAT Y TIMES ( INCREASE X ) ) ) ) REPEAT S TIMES ( CLEAR U REPEAT V TIMES ( INCREASE V ) REPEAT M TIMES ( INCREASE T REPEAT U TIMES ( CLEAR T CLEAR S CLEAR M INCREASE M ) REPEAT T TIMES ( CLEAR T INCREASE U REPEAT V TIMES ( REPEAT Y TIMES ( INCREASE X ) ) ) ) REPEAT S TIMES ( CLEAR U REPEAT Y TIMES ( INCREASE Y ) REPEAT N TIMES ( INCREASE T REPEAT U TIMES ( CLEAR T CLEAR S CLEAR N INCREASE N ) REPEAT T TIMES ( CLEAR T INCREASE U REPEAT V TIMES ( REPEAT Y TIMES ( INCREASE X ) ) ) ) REPEAT S TIMES ( CLEAR U REPEAT V TIMES ( INCREASE V ) REPEAT O TIMES ( INCREASE T REPEAT U TIMES ( CLEAR T CLEAR S CLEAR O INCREASE O ) REPEAT T TIMES ( CLEAR T INCREASE U REPEAT V TIMES ( REPEAT Y TIMES ( INCREASE X ) ) ) ) REPEAT S TIMES ( CLEAR U REPEAT Y TIMES ( INCREASE Y ) REPEAT P TIMES ( INCREASE T REPEAT U TIMES ( CLEAR T CLEAR S CLEAR P INCREASE P ) REPEAT T TIMES ( CLEAR T INCREASE U REPEAT V TIMES ( REPEAT Y TIMES ( INCREASE X ) ) ) ) REPEAT S TIMES ( CLEAR U REPEAT V TIMES ( INCREASE V ) REPEAT Q TIMES ( INCREASE T REPEAT U TIMES ( CLEAR T CLEAR S CLEAR Q INCREASE Q ) REPEAT T TIMES ( CLEAR T INCREASE U REPEAT V TIMES ( REPEAT Y TIMES ( INCREASE X ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) CLEAR S CLEAR U CLEAR V CLEAR Y PRINT X ) ) )