PRINT X # max number we can reach in the process: 190996 (17 bits), originally max is 1000 (10 bits) # change X into a binary number: variables A-R serve as bits # R CLEAR Y # quotient, result of division CLEAR R # remainder, 0/1, our next bit REPEAT X TIMES ( # the values of R vary 0-1-0-1... CLEAR S REPEAT R TIMES ( INCREASE S INCREASE Y ) INCREASE R REPEAT S TIMES ( CLEAR R ) ) # Q CLEAR X # quotient, result of division CLEAR Q # remainder, 0/1, our next bit REPEAT Y TIMES ( # the values of Q vary 0-1-0-1... CLEAR S REPEAT Q TIMES ( INCREASE S INCREASE X ) INCREASE Q REPEAT S TIMES ( CLEAR Q ) ) # P CLEAR Y # quotient, result of division CLEAR P # remainder, 0/1, our next bit REPEAT X TIMES ( # the values of P vary 0-1-0-1... CLEAR S REPEAT P TIMES ( INCREASE S INCREASE Y ) INCREASE P REPEAT S TIMES ( CLEAR P ) ) # O CLEAR X # quotient, result of division CLEAR O # remainder, 0/1, our next bit REPEAT Y TIMES ( # the values of O vary 0-1-0-1... CLEAR S REPEAT O TIMES ( INCREASE S INCREASE X ) INCREASE O REPEAT S TIMES ( CLEAR O ) ) # N CLEAR Y # quotient, result of division CLEAR N # remainder, 0/1, our next bit REPEAT X TIMES ( # the values of N vary 0-1-0-1... CLEAR S REPEAT N TIMES ( INCREASE S INCREASE Y ) INCREASE N REPEAT S TIMES ( CLEAR N ) ) # M CLEAR X # quotient, result of division CLEAR M # remainder, 0/1, our next bit REPEAT Y TIMES ( # the values of M vary 0-1-0-1... CLEAR S REPEAT M TIMES ( INCREASE S INCREASE X ) INCREASE M REPEAT S TIMES ( CLEAR M ) ) # L CLEAR Y # quotient, result of division CLEAR L # remainder, 0/1, our next bit REPEAT X TIMES ( # the values of L vary 0-1-0-1... CLEAR S REPEAT L TIMES ( INCREASE S INCREASE Y ) INCREASE L REPEAT S TIMES ( CLEAR L ) ) # K CLEAR X # quotient, result of division CLEAR K # remainder, 0/1, our next bit REPEAT Y TIMES ( # the values of K vary 0-1-0-1... CLEAR S REPEAT K TIMES ( INCREASE S INCREASE X ) INCREASE K REPEAT S TIMES ( CLEAR K ) ) # J CLEAR Y # quotient, result of division CLEAR J # remainder, 0/1, our next bit REPEAT X TIMES ( # the values of J vary 0-1-0-1... CLEAR S REPEAT J TIMES ( INCREASE S INCREASE Y ) INCREASE J REPEAT S TIMES ( CLEAR J ) ) # I CLEAR X # quotient, result of division CLEAR I # remainder, 0/1, our next bit REPEAT Y TIMES ( # the values of I vary 0-1-0-1... CLEAR S REPEAT I TIMES ( INCREASE S INCREASE X ) INCREASE I REPEAT S TIMES ( CLEAR I ) ) # V=enough INCREASE V INCREASE V INCREASE V INCREASE V INCREASE V REPEAT V TIMES ( REPEAT V TIMES ( INCREASE V ) ) CLEAR S INCREASE S # S=1 while we continue # compute the sequence REPEAT V TIMES ( REPEAT S TIMES ( # if not 1, proceed # checking if current number is 1 CLEAR Z REPEAT Q TIMES ( # we count how many 0 there are INCREASE Z ) REPEAT P TIMES ( INCREASE Z ) REPEAT O TIMES ( INCREASE Z ) REPEAT N TIMES ( INCREASE Z ) REPEAT M TIMES ( INCREASE Z ) REPEAT L TIMES ( INCREASE Z ) REPEAT K TIMES ( INCREASE Z ) REPEAT J TIMES ( INCREASE Z ) REPEAT I TIMES ( INCREASE Z ) REPEAT H TIMES ( INCREASE Z ) REPEAT G TIMES ( INCREASE Z ) REPEAT F TIMES ( INCREASE Z ) REPEAT E TIMES ( INCREASE Z ) REPEAT D TIMES ( INCREASE Z ) REPEAT C TIMES ( INCREASE Z ) REPEAT B TIMES ( INCREASE Z ) REPEAT A TIMES ( INCREASE Z ) CLEAR S REPEAT Z TIMES ( CLEAR S INCREASE S ) ) REPEAT S TIMES ( # if not 1, proceed CLEAR Z # if Z=1, the number is divisible by 2 INCREASE Z CLEAR T # if T=1, the number is not divisible by 2 REPEAT R TIMES ( CLEAR Z INCREASE T ) # divide by 2: if number is divisible by 2, the last bit R=0 REPEAT Z TIMES ( CLEAR R REPEAT Q TIMES ( INCREASE R ) CLEAR Q REPEAT P TIMES ( INCREASE Q ) CLEAR P REPEAT O TIMES ( INCREASE P ) CLEAR O REPEAT N TIMES ( INCREASE O ) CLEAR N REPEAT M TIMES ( INCREASE N ) CLEAR M REPEAT L TIMES ( INCREASE M ) CLEAR L REPEAT K TIMES ( INCREASE L ) CLEAR K REPEAT J TIMES ( INCREASE K ) CLEAR J REPEAT I TIMES ( INCREASE J ) CLEAR I REPEAT H TIMES ( INCREASE I ) CLEAR H REPEAT G TIMES ( INCREASE H ) CLEAR G REPEAT F TIMES ( INCREASE G ) CLEAR F REPEAT E TIMES ( INCREASE F ) CLEAR E REPEAT D TIMES ( INCREASE E ) CLEAR D REPEAT C TIMES ( INCREASE D ) CLEAR C REPEAT B TIMES ( INCREASE C ) CLEAR B REPEAT A TIMES ( INCREASE B ) CLEAR A ) # multiply by 3 plus 1: if number is not divisible by 2, the Z=1 REPEAT T TIMES ( # ---------------------------- CLEAR Z # transfer to the next REPEAT R TIMES ( INCREASE Z ) INCREASE R CLEAR Y REPEAT R TIMES ( # the values of Y vary 0-1-0-1... CLEAR W REPEAT Y TIMES ( INCREASE W INCREASE Z ) INCREASE Y REPEAT W TIMES ( CLEAR Y ) ) CLEAR R REPEAT Y TIMES ( INCREASE R ) # ---------------------------- CLEAR T # transfer to the next REPEAT Q TIMES ( INCREASE T ) REPEAT Z TIMES ( INCREASE Q ) CLEAR W CLEAR Y REPEAT Q TIMES ( CLEAR Y REPEAT W TIMES ( INCREASE Y ) INCREASE W ) CLEAR X REPEAT Y TIMES ( CLEAR Q CLEAR X INCREASE X ) CLEAR W CLEAR U REPEAT Y TIMES ( CLEAR U REPEAT W TIMES ( INCREASE U ) INCREASE W ) REPEAT U TIMES ( INCREASE Q ) REPEAT X TIMES ( INCREASE T ) # ---------------------------- CLEAR Z # transfer to the next REPEAT P TIMES ( INCREASE Z ) REPEAT T TIMES ( INCREASE P ) CLEAR W CLEAR Y REPEAT P TIMES ( CLEAR Y REPEAT W TIMES ( INCREASE Y ) INCREASE W ) CLEAR X REPEAT Y TIMES ( CLEAR P CLEAR X INCREASE X ) CLEAR W CLEAR U REPEAT Y TIMES ( CLEAR U REPEAT W TIMES ( INCREASE U ) INCREASE W ) REPEAT U TIMES ( INCREASE P ) REPEAT X TIMES ( INCREASE Z ) # ---------------------------- CLEAR T # transfer to the next REPEAT O TIMES ( INCREASE T ) REPEAT Z TIMES ( INCREASE O ) CLEAR W CLEAR Y REPEAT O TIMES ( CLEAR Y REPEAT W TIMES ( INCREASE Y ) INCREASE W ) CLEAR X REPEAT Y TIMES ( CLEAR O CLEAR X INCREASE X ) CLEAR W CLEAR U REPEAT Y TIMES ( CLEAR U REPEAT W TIMES ( INCREASE U ) INCREASE W ) REPEAT U TIMES ( INCREASE O ) REPEAT X TIMES ( INCREASE T ) # ---------------------------- CLEAR Z # transfer to the next REPEAT N TIMES ( INCREASE Z ) REPEAT T TIMES ( INCREASE N ) CLEAR W CLEAR Y REPEAT N TIMES ( CLEAR Y REPEAT W TIMES ( INCREASE Y ) INCREASE W ) CLEAR X REPEAT Y TIMES ( CLEAR N CLEAR X INCREASE X ) CLEAR W CLEAR U REPEAT Y TIMES ( CLEAR U REPEAT W TIMES ( INCREASE U ) INCREASE W ) REPEAT U TIMES ( INCREASE N ) REPEAT X TIMES ( INCREASE Z ) # ---------------------------- CLEAR T # transfer to the next REPEAT M TIMES ( INCREASE T ) REPEAT Z TIMES ( INCREASE M ) CLEAR W CLEAR Y REPEAT M TIMES ( CLEAR Y REPEAT W TIMES ( INCREASE Y ) INCREASE W ) CLEAR X REPEAT Y TIMES ( CLEAR M CLEAR X INCREASE X ) CLEAR W CLEAR U REPEAT Y TIMES ( CLEAR U REPEAT W TIMES ( INCREASE U ) INCREASE W ) REPEAT U TIMES ( INCREASE M ) REPEAT X TIMES ( INCREASE T ) # ---------------------------- CLEAR Z # transfer to the next REPEAT L TIMES ( INCREASE Z ) REPEAT T TIMES ( INCREASE L ) CLEAR W CLEAR Y REPEAT L TIMES ( CLEAR Y REPEAT W TIMES ( INCREASE Y ) INCREASE W ) CLEAR X REPEAT Y TIMES ( CLEAR L CLEAR X INCREASE X ) CLEAR W CLEAR U REPEAT Y TIMES ( CLEAR U REPEAT W TIMES ( INCREASE U ) INCREASE W ) REPEAT U TIMES ( INCREASE L ) REPEAT X TIMES ( INCREASE Z ) # ---------------------------- CLEAR T # transfer to the next REPEAT K TIMES ( INCREASE T ) REPEAT Z TIMES ( INCREASE K ) CLEAR W CLEAR Y REPEAT K TIMES ( CLEAR Y REPEAT W TIMES ( INCREASE Y ) INCREASE W ) CLEAR X REPEAT Y TIMES ( CLEAR K CLEAR X INCREASE X ) CLEAR W CLEAR U REPEAT Y TIMES ( CLEAR U REPEAT W TIMES ( INCREASE U ) INCREASE W ) REPEAT U TIMES ( INCREASE K ) REPEAT X TIMES ( INCREASE T ) # ---------------------------- CLEAR Z # transfer to the next REPEAT J TIMES ( INCREASE Z ) REPEAT T TIMES ( INCREASE J ) CLEAR W CLEAR Y REPEAT J TIMES ( CLEAR Y REPEAT W TIMES ( INCREASE Y ) INCREASE W ) CLEAR X REPEAT Y TIMES ( CLEAR J CLEAR X INCREASE X ) CLEAR W CLEAR U REPEAT Y TIMES ( CLEAR U REPEAT W TIMES ( INCREASE U ) INCREASE W ) REPEAT U TIMES ( INCREASE J ) REPEAT X TIMES ( INCREASE Z ) # ---------------------------- CLEAR T # transfer to the next REPEAT I TIMES ( INCREASE T ) REPEAT Z TIMES ( INCREASE I ) CLEAR W CLEAR Y REPEAT I TIMES ( CLEAR Y REPEAT W TIMES ( INCREASE Y ) INCREASE W ) CLEAR X REPEAT Y TIMES ( CLEAR I CLEAR X INCREASE X ) CLEAR W CLEAR U REPEAT Y TIMES ( CLEAR U REPEAT W TIMES ( INCREASE U ) INCREASE W ) REPEAT U TIMES ( INCREASE I ) REPEAT X TIMES ( INCREASE T ) # ---------------------------- CLEAR Z # transfer to the next REPEAT H TIMES ( INCREASE Z ) REPEAT T TIMES ( INCREASE H ) CLEAR W CLEAR Y REPEAT H TIMES ( CLEAR Y REPEAT W TIMES ( INCREASE Y ) INCREASE W ) CLEAR X REPEAT Y TIMES ( CLEAR H CLEAR X INCREASE X ) CLEAR W CLEAR U REPEAT Y TIMES ( CLEAR U REPEAT W TIMES ( INCREASE U ) INCREASE W ) REPEAT U TIMES ( INCREASE H ) REPEAT X TIMES ( INCREASE Z ) # ---------------------------- CLEAR T # transfer to the next REPEAT G TIMES ( INCREASE T ) REPEAT Z TIMES ( INCREASE G ) CLEAR W CLEAR Y REPEAT G TIMES ( CLEAR Y REPEAT W TIMES ( INCREASE Y ) INCREASE W ) CLEAR X REPEAT Y TIMES ( CLEAR G CLEAR X INCREASE X ) CLEAR W CLEAR U REPEAT Y TIMES ( CLEAR U REPEAT W TIMES ( INCREASE U ) INCREASE W ) REPEAT U TIMES ( INCREASE G ) REPEAT X TIMES ( INCREASE T ) # ---------------------------- CLEAR Z # transfer to the next REPEAT F TIMES ( INCREASE Z ) REPEAT T TIMES ( INCREASE F ) CLEAR W CLEAR Y REPEAT F TIMES ( CLEAR Y REPEAT W TIMES ( INCREASE Y ) INCREASE W ) CLEAR X REPEAT Y TIMES ( CLEAR F CLEAR X INCREASE X ) CLEAR W CLEAR U REPEAT Y TIMES ( CLEAR U REPEAT W TIMES ( INCREASE U ) INCREASE W ) REPEAT U TIMES ( INCREASE F ) REPEAT X TIMES ( INCREASE Z ) # ---------------------------- CLEAR T # transfer to the next REPEAT E TIMES ( INCREASE T ) REPEAT Z TIMES ( INCREASE E ) CLEAR W CLEAR Y REPEAT E TIMES ( CLEAR Y REPEAT W TIMES ( INCREASE Y ) INCREASE W ) CLEAR X REPEAT Y TIMES ( CLEAR E CLEAR X INCREASE X ) CLEAR W CLEAR U REPEAT Y TIMES ( CLEAR U REPEAT W TIMES ( INCREASE U ) INCREASE W ) REPEAT U TIMES ( INCREASE E ) REPEAT X TIMES ( INCREASE T ) # ---------------------------- CLEAR Z # transfer to the next REPEAT D TIMES ( INCREASE Z ) REPEAT T TIMES ( INCREASE D ) CLEAR W CLEAR Y REPEAT D TIMES ( CLEAR Y REPEAT W TIMES ( INCREASE Y ) INCREASE W ) CLEAR X REPEAT Y TIMES ( CLEAR D CLEAR X INCREASE X ) CLEAR W CLEAR U REPEAT Y TIMES ( CLEAR U REPEAT W TIMES ( INCREASE U ) INCREASE W ) REPEAT U TIMES ( INCREASE D ) REPEAT X TIMES ( INCREASE Z ) # ---------------------------- CLEAR T # transfer to the next REPEAT C TIMES ( INCREASE T ) REPEAT Z TIMES ( INCREASE C ) CLEAR W CLEAR Y REPEAT C TIMES ( CLEAR Y REPEAT W TIMES ( INCREASE Y ) INCREASE W ) CLEAR X REPEAT Y TIMES ( CLEAR C CLEAR X INCREASE X ) CLEAR W CLEAR U REPEAT Y TIMES ( CLEAR U REPEAT W TIMES ( INCREASE U ) INCREASE W ) REPEAT U TIMES ( INCREASE C ) REPEAT X TIMES ( INCREASE T ) # processing B - deleted # processing A - deleted ) # convert the number back CLEAR X # this is the current number CLEAR Y # power of 2 INCREASE Y CLEAR T # how many bits have been 0 REPEAT R TIMES ( REPEAT Y TIMES ( INCREASE X ) ) INCREASE T REPEAT Q TIMES ( REPEAT T TIMES ( REPEAT Y TIMES ( INCREASE Y ) ) REPEAT Y TIMES ( INCREASE X ) CLEAR T ) INCREASE T REPEAT P TIMES ( REPEAT T TIMES ( REPEAT Y TIMES ( INCREASE Y ) ) REPEAT Y TIMES ( INCREASE X ) CLEAR T ) INCREASE T REPEAT O TIMES ( REPEAT T TIMES ( REPEAT Y TIMES ( INCREASE Y ) ) REPEAT Y TIMES ( INCREASE X ) CLEAR T ) INCREASE T REPEAT N TIMES ( REPEAT T TIMES ( REPEAT Y TIMES ( INCREASE Y ) ) REPEAT Y TIMES ( INCREASE X ) CLEAR T ) INCREASE T REPEAT M TIMES ( REPEAT T TIMES ( REPEAT Y TIMES ( INCREASE Y ) ) REPEAT Y TIMES ( INCREASE X ) CLEAR T ) INCREASE T REPEAT L TIMES ( REPEAT T TIMES ( REPEAT Y TIMES ( INCREASE Y ) ) REPEAT Y TIMES ( INCREASE X ) CLEAR T ) INCREASE T REPEAT K TIMES ( REPEAT T TIMES ( REPEAT Y TIMES ( INCREASE Y ) ) REPEAT Y TIMES ( INCREASE X ) CLEAR T ) INCREASE T REPEAT J TIMES ( REPEAT T TIMES ( REPEAT Y TIMES ( INCREASE Y ) ) REPEAT Y TIMES ( INCREASE X ) CLEAR T ) INCREASE T REPEAT I TIMES ( REPEAT T TIMES ( REPEAT Y TIMES ( INCREASE Y ) ) REPEAT Y TIMES ( INCREASE X ) CLEAR T ) INCREASE T REPEAT H TIMES ( REPEAT T TIMES ( REPEAT Y TIMES ( INCREASE Y ) ) REPEAT Y TIMES ( INCREASE X ) CLEAR T ) INCREASE T REPEAT G TIMES ( REPEAT T TIMES ( REPEAT Y TIMES ( INCREASE Y ) ) REPEAT Y TIMES ( INCREASE X ) CLEAR T ) INCREASE T REPEAT F TIMES ( REPEAT T TIMES ( REPEAT Y TIMES ( INCREASE Y ) ) REPEAT Y TIMES ( INCREASE X ) CLEAR T ) INCREASE T REPEAT E TIMES ( REPEAT T TIMES ( REPEAT Y TIMES ( INCREASE Y ) ) REPEAT Y TIMES ( INCREASE X ) CLEAR T ) INCREASE T REPEAT D TIMES ( REPEAT T TIMES ( REPEAT Y TIMES ( INCREASE Y ) ) REPEAT Y TIMES ( INCREASE X ) CLEAR T ) INCREASE T REPEAT C TIMES ( REPEAT T TIMES ( REPEAT Y TIMES ( INCREASE Y ) ) REPEAT Y TIMES ( INCREASE X ) CLEAR T ) # processing B - deleted # processing A - deleted PRINT X ) )