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 Y
)
INCREASE Q
REPEAT S TIMES (
CLEAR Q
)
)
CLEAR X
REPEAT Y TIMES (
INCREASE X
)
# 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
)
)
CLEAR X
REPEAT Y TIMES (
INCREASE X
)
# O
CLEAR Y # quotient, result of division
CLEAR O # remainder, 0/1, our next bit
REPEAT X TIMES ( # the values of O vary 0-1-0-1...
CLEAR S
REPEAT O TIMES (
INCREASE S
INCREASE Y
)
INCREASE O
REPEAT S TIMES (
CLEAR O
)
)
CLEAR X
REPEAT Y TIMES (
INCREASE X
)
# 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
)
)
CLEAR X
REPEAT Y TIMES (
INCREASE X
)
# M
CLEAR Y # quotient, result of division
CLEAR M # remainder, 0/1, our next bit
REPEAT X TIMES ( # the values of M vary 0-1-0-1...
CLEAR S
REPEAT M TIMES (
INCREASE S
INCREASE Y
)
INCREASE M
REPEAT S TIMES (
CLEAR M
)
)
CLEAR X
REPEAT Y TIMES (
INCREASE X
)
# 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
)
)
CLEAR X
REPEAT Y TIMES (
INCREASE X
)
# K
CLEAR Y # quotient, result of division
CLEAR K # remainder, 0/1, our next bit
REPEAT X TIMES ( # the values of K vary 0-1-0-1...
CLEAR S
REPEAT K TIMES (
INCREASE S
INCREASE Y
)
INCREASE K
REPEAT S TIMES (
CLEAR K
)
)
CLEAR X
REPEAT Y TIMES (
INCREASE X
)
# 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
)
)
CLEAR X
REPEAT Y TIMES (
INCREASE X
)
# I
CLEAR Y # quotient, result of division
CLEAR I # remainder, 0/1, our next bit
REPEAT X TIMES ( # the values of I vary 0-1-0-1...
CLEAR S
REPEAT I TIMES (
INCREASE S
INCREASE Y
)
INCREASE I
REPEAT S TIMES (
CLEAR I
)
)
CLEAR X
REPEAT Y TIMES (
INCREASE X
)
# 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 W
CLEAR Y
REPEAT R TIMES (
CLEAR Y
REPEAT W TIMES (
INCREASE Y
)
INCREASE W
)
CLEAR X
REPEAT Y TIMES (
CLEAR R
CLEAR X
INCREASE X
)
CLEAR W
CLEAR U
REPEAT Y TIMES (
CLEAR U
REPEAT W TIMES (
INCREASE U
)
INCREASE W
)
REPEAT U TIMES (
INCREASE R
)
REPEAT X TIMES (
INCREASE Z
)
# ----------------------------
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
)
)