# X - transform into 18 bits REPEAT X TIMES ( CLEAR V INCREASE V REPEAT R TIMES ( REPEAT Q TIMES ( REPEAT P TIMES ( REPEAT O TIMES ( REPEAT N TIMES ( REPEAT M TIMES ( REPEAT L TIMES ( REPEAT K TIMES ( REPEAT J TIMES ( REPEAT I TIMES ( REPEAT H TIMES ( REPEAT G TIMES ( REPEAT F TIMES ( REPEAT E TIMES ( REPEAT D TIMES ( REPEAT C TIMES ( REPEAT B TIMES ( REPEAT V TIMES ( INCREASE A ) CLEAR V CLEAR B ) REPEAT V TIMES ( INCREASE B ) CLEAR V CLEAR C ) REPEAT V TIMES ( INCREASE C ) CLEAR V CLEAR D ) REPEAT V TIMES ( INCREASE D ) CLEAR V CLEAR E ) REPEAT V TIMES ( INCREASE E ) CLEAR V CLEAR F ) REPEAT V TIMES ( INCREASE F ) CLEAR V CLEAR G ) REPEAT V TIMES ( INCREASE G ) CLEAR V CLEAR H ) REPEAT V TIMES ( INCREASE H ) CLEAR V CLEAR I ) REPEAT V TIMES ( INCREASE I ) CLEAR V CLEAR J ) REPEAT V TIMES ( INCREASE J ) CLEAR V CLEAR K ) REPEAT V TIMES ( INCREASE K ) CLEAR V CLEAR L ) REPEAT V TIMES ( INCREASE L ) CLEAR V CLEAR R ) REPEAT V TIMES ( INCREASE M ) CLEAR V CLEAR N ) REPEAT V TIMES ( INCREASE N ) CLEAR V CLEAR O ) REPEAT V TIMES ( INCREASE O ) CLEAR V CLEAR P ) REPEAT V TIMES ( INCREASE P ) CLEAR V CLEAR Q ) REPEAT V TIMES ( INCREASE Q ) CLEAR V CLEAR R ) REPEAT V TIMES ( INCREASE R ) ) CLEAR A CLEAR B INCREASE B INCREASE B INCREASE B INCREASE B REPEAT B TIMES ( REPEAT B TIMES ( REPEAT B TIMES ( REPEAT B TIMES ( INCREASE A ) ) ) ) PRINT X # A B C D E F G H I J K L M N O P Q R S T U V W X Y Z # while last bit != first bit do: REPEAT A TIMES ( CLEAR A CLEAR B # SET Q = 1 IF X != 1 ELSE Q = 0 CLEAR W CLEAR T INCREASE T CLEAR Z # RESULT REPEAT X TIMES ( REPEAT W TIMES ( INCREASE Z CLEAR T CLEAR W ) REPEAT T TIMES ( INCREASE W ) ) # IF X != 1 REPEAT Z TIMES ( # ELSE BLOCK CLEAR U INCREASE U # if last bit == 1: REPEAT R TIMES ( # 3X + 1 CLEAR Z # RES CLEAR Y # INC CLEAR W # MEM INCREASE Y # SET INCREASE TO 1 REPEAT R TIMES ( INCREASE Z ) REPEAT Y TIMES ( INCREASE Z ) REPEAT W TIMES ( INCREASE Z ) CLEAR Y CLEAR W REPEAT R TIMES ( INCREASE W ) CLEAR R REPEAT Z TIMES ( CLEAR T INCREASE T REPEAT R TIMES ( CLEAR R CLEAR T CLEAR Y INCREASE Y ) REPEAT T TIMES ( INCREASE R ) ) CLEAR Z REPEAT Q TIMES ( INCREASE Z ) REPEAT Y TIMES ( INCREASE Z ) REPEAT W TIMES ( INCREASE Z ) CLEAR Y CLEAR W REPEAT Q TIMES ( INCREASE W ) CLEAR Q REPEAT Z TIMES ( CLEAR T INCREASE T REPEAT Q TIMES ( CLEAR Q CLEAR T CLEAR Y INCREASE Y ) REPEAT T TIMES ( INCREASE Q ) ) CLEAR Z REPEAT P TIMES ( INCREASE Z ) REPEAT Y TIMES ( INCREASE Z ) REPEAT W TIMES ( INCREASE Z ) CLEAR Y CLEAR W REPEAT P TIMES ( INCREASE W ) CLEAR P REPEAT Z TIMES ( CLEAR T INCREASE T REPEAT P TIMES ( CLEAR P CLEAR T CLEAR Y INCREASE Y ) REPEAT T TIMES ( INCREASE P ) ) CLEAR Z REPEAT O TIMES ( INCREASE Z ) REPEAT Y TIMES ( INCREASE Z ) REPEAT W TIMES ( INCREASE Z ) CLEAR Y CLEAR W REPEAT O TIMES ( INCREASE W ) CLEAR O REPEAT Z TIMES ( CLEAR T INCREASE T REPEAT O TIMES ( CLEAR O CLEAR T CLEAR Y INCREASE Y ) REPEAT T TIMES ( INCREASE O ) ) CLEAR Z REPEAT N TIMES ( INCREASE Z ) REPEAT Y TIMES ( INCREASE Z ) REPEAT W TIMES ( INCREASE Z ) CLEAR Y CLEAR W REPEAT N TIMES ( INCREASE W ) CLEAR N REPEAT Z TIMES ( CLEAR T INCREASE T REPEAT N TIMES ( CLEAR N CLEAR T CLEAR Y INCREASE Y ) REPEAT T TIMES ( INCREASE N ) ) CLEAR Z REPEAT M TIMES ( INCREASE Z ) REPEAT Y TIMES ( INCREASE Z ) REPEAT W TIMES ( INCREASE Z ) CLEAR Y CLEAR W REPEAT M TIMES ( INCREASE W ) CLEAR M REPEAT Z TIMES ( CLEAR T INCREASE T REPEAT M TIMES ( CLEAR M CLEAR T CLEAR Y INCREASE Y ) REPEAT T TIMES ( INCREASE M ) ) CLEAR Z REPEAT L TIMES ( INCREASE Z ) REPEAT Y TIMES ( INCREASE Z ) REPEAT W TIMES ( INCREASE Z ) CLEAR Y CLEAR W REPEAT L TIMES ( INCREASE W ) CLEAR L REPEAT Z TIMES ( CLEAR T INCREASE T REPEAT L TIMES ( CLEAR L CLEAR T CLEAR Y INCREASE Y ) REPEAT T TIMES ( INCREASE L ) ) CLEAR Z REPEAT K TIMES ( INCREASE Z ) REPEAT Y TIMES ( INCREASE Z ) REPEAT W TIMES ( INCREASE Z ) CLEAR Y CLEAR W REPEAT K TIMES ( INCREASE W ) CLEAR K REPEAT Z TIMES ( CLEAR T INCREASE T REPEAT K TIMES ( CLEAR K CLEAR T CLEAR Y INCREASE Y ) REPEAT T TIMES ( INCREASE K ) ) CLEAR Z REPEAT J TIMES ( INCREASE Z ) REPEAT Y TIMES ( INCREASE Z ) REPEAT W TIMES ( INCREASE Z ) CLEAR Y CLEAR W REPEAT J TIMES ( INCREASE W ) CLEAR J REPEAT Z TIMES ( CLEAR T INCREASE T REPEAT J TIMES ( CLEAR J CLEAR T CLEAR Y INCREASE Y ) REPEAT T TIMES ( INCREASE J ) ) CLEAR Z REPEAT I TIMES ( INCREASE Z ) REPEAT Y TIMES ( INCREASE Z ) REPEAT W TIMES ( INCREASE Z ) CLEAR Y CLEAR W REPEAT I TIMES ( INCREASE W ) CLEAR I REPEAT Z TIMES ( CLEAR T INCREASE T REPEAT I TIMES ( CLEAR I CLEAR T CLEAR Y INCREASE Y ) REPEAT T TIMES ( INCREASE I ) ) CLEAR Z REPEAT H TIMES ( INCREASE Z ) REPEAT Y TIMES ( INCREASE Z ) REPEAT W TIMES ( INCREASE Z ) CLEAR Y CLEAR W REPEAT H TIMES ( INCREASE W ) CLEAR H REPEAT Z TIMES ( CLEAR T INCREASE T REPEAT H TIMES ( CLEAR H CLEAR T CLEAR Y INCREASE Y ) REPEAT T TIMES ( INCREASE H ) ) CLEAR Z REPEAT G TIMES ( INCREASE Z ) REPEAT Y TIMES ( INCREASE Z ) REPEAT W TIMES ( INCREASE Z ) CLEAR Y CLEAR W REPEAT G TIMES ( INCREASE W ) CLEAR G REPEAT Z TIMES ( CLEAR T INCREASE T REPEAT G TIMES ( CLEAR G CLEAR T CLEAR Y INCREASE Y ) REPEAT T TIMES ( INCREASE G ) ) CLEAR Z REPEAT F TIMES ( INCREASE Z ) REPEAT Y TIMES ( INCREASE Z ) REPEAT W TIMES ( INCREASE Z ) CLEAR Y CLEAR W REPEAT F TIMES ( INCREASE W ) CLEAR F REPEAT Z TIMES ( CLEAR T INCREASE T REPEAT F TIMES ( CLEAR F CLEAR T CLEAR Y INCREASE Y ) REPEAT T TIMES ( INCREASE F ) ) CLEAR Z REPEAT E TIMES ( INCREASE Z ) REPEAT Y TIMES ( INCREASE Z ) REPEAT W TIMES ( INCREASE Z ) CLEAR Y CLEAR W REPEAT E TIMES ( INCREASE W ) CLEAR E REPEAT Z TIMES ( CLEAR T INCREASE T REPEAT E TIMES ( CLEAR E CLEAR T CLEAR Y INCREASE Y ) REPEAT T TIMES ( INCREASE E ) ) CLEAR Z REPEAT D TIMES ( INCREASE Z ) REPEAT Y TIMES ( INCREASE Z ) REPEAT W TIMES ( INCREASE Z ) CLEAR Y CLEAR W REPEAT D TIMES ( INCREASE W ) CLEAR D REPEAT Z TIMES ( CLEAR T INCREASE T REPEAT D TIMES ( CLEAR D CLEAR T CLEAR Y INCREASE Y ) REPEAT T TIMES ( INCREASE D ) ) CLEAR Z REPEAT C TIMES ( INCREASE Z ) REPEAT Y TIMES ( INCREASE Z ) REPEAT W TIMES ( INCREASE Z ) CLEAR Y CLEAR W REPEAT C TIMES ( INCREASE W ) CLEAR C REPEAT Z TIMES ( CLEAR T INCREASE T REPEAT C TIMES ( CLEAR C CLEAR T CLEAR Y INCREASE Y ) REPEAT T TIMES ( INCREASE C ) ) CLEAR Z REPEAT B TIMES ( INCREASE Z ) REPEAT Y TIMES ( INCREASE Z ) REPEAT W TIMES ( INCREASE Z ) CLEAR Y CLEAR W REPEAT B TIMES ( INCREASE W ) CLEAR B REPEAT Z TIMES ( CLEAR T INCREASE T REPEAT B TIMES ( CLEAR B CLEAR T CLEAR Y INCREASE Y ) REPEAT T TIMES ( INCREASE B ) ) CLEAR Z REPEAT A TIMES ( INCREASE Z ) REPEAT Y TIMES ( INCREASE Z ) REPEAT W TIMES ( INCREASE Z ) CLEAR Y CLEAR W REPEAT A TIMES ( INCREASE W ) CLEAR A REPEAT Z TIMES ( CLEAR T INCREASE T REPEAT A TIMES ( CLEAR A CLEAR T CLEAR Y INCREASE Y ) REPEAT T TIMES ( INCREASE A ) ) CLEAR S CLEAR Z CLEAR U ) # else REPEAT U TIMES ( # X /= 2 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 ) CLEAR X CLEAR U INCREASE U # ADD 2^z TO X # U *= 2 REPEAT R TIMES ( REPEAT U TIMES ( INCREASE X ) ) REPEAT U TIMES ( INCREASE U ) REPEAT Q TIMES ( REPEAT U TIMES ( INCREASE X ) ) REPEAT U TIMES ( INCREASE U ) REPEAT P TIMES ( REPEAT U TIMES ( INCREASE X ) ) REPEAT U TIMES ( INCREASE U ) REPEAT O TIMES ( REPEAT U TIMES ( INCREASE X ) ) REPEAT U TIMES ( INCREASE U ) REPEAT N TIMES ( REPEAT U TIMES ( INCREASE X ) ) REPEAT U TIMES ( INCREASE U ) REPEAT M TIMES ( REPEAT U TIMES ( INCREASE X ) ) REPEAT U TIMES ( INCREASE U ) REPEAT L TIMES ( REPEAT U TIMES ( INCREASE X ) ) REPEAT U TIMES ( INCREASE U ) REPEAT K TIMES ( REPEAT U TIMES ( INCREASE X ) ) REPEAT U TIMES ( INCREASE U ) REPEAT J TIMES ( REPEAT U TIMES ( INCREASE X ) ) REPEAT U TIMES ( INCREASE U ) REPEAT I TIMES ( REPEAT U TIMES ( INCREASE X ) ) REPEAT U TIMES ( INCREASE U ) REPEAT H TIMES ( REPEAT U TIMES ( INCREASE X ) ) REPEAT U TIMES ( INCREASE U ) REPEAT G TIMES ( REPEAT U TIMES ( INCREASE X ) ) REPEAT U TIMES ( INCREASE U ) REPEAT F TIMES ( REPEAT U TIMES ( INCREASE X ) ) REPEAT U TIMES ( INCREASE U ) REPEAT E TIMES ( REPEAT U TIMES ( INCREASE X ) ) REPEAT U TIMES ( INCREASE U ) REPEAT D TIMES ( REPEAT U TIMES ( INCREASE X ) ) REPEAT U TIMES ( INCREASE U ) REPEAT C TIMES ( REPEAT U TIMES ( INCREASE X ) ) REPEAT U TIMES ( INCREASE U ) REPEAT B TIMES ( REPEAT U TIMES ( INCREASE X ) ) REPEAT U TIMES ( INCREASE U ) REPEAT A TIMES ( REPEAT U TIMES ( INCREASE X ) ) # print X PRINT X ) )