INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A
INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A
INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A
INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A
INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A
INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A
INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A
INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A
INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A
INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A
INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A
INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A
INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A
INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A
INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A
INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A
PRINT X
# I=floor(X/2), R=parity(X)
REPEAT X TIMES (
CLEAR T
INCREASE T
REPEAT R TIMES ( CLEAR T )
CLEAR R
REPEAT T TIMES ( INCREASE R )
CLEAR U
INCREASE U
REPEAT R TIMES ( CLEAR U )
REPEAT U TIMES ( INCREASE I )
)
# S=parity(I)
REPEAT I TIMES (
CLEAR T
INCREASE T
REPEAT S TIMES ( CLEAR T )
CLEAR S
REPEAT T TIMES ( INCREASE S )
)
INCREASE C
# if X is odd
REPEAT R TIMES (
CLEAR I
REPEAT X TIMES ( INCREASE I )
REPEAT X TIMES ( INCREASE X )
# check if I == 0
INCREASE L
REPEAT I TIMES ( CLEAR L )
REPEAT L TIMES ( CLEAR C )
)
# if X is even
INCREASE G
REPEAT R TIMES ( CLEAR G )
REPEAT G TIMES (
PRINT I
)
# if I is even
CLEAR G
INCREASE G
REPEAT S TIMES ( CLEAR G )
REPEAT G TIMES (
# Z=floor(I/2)
CLEAR R
REPEAT I TIMES (
CLEAR T
INCREASE T
REPEAT R TIMES ( CLEAR T )
CLEAR R
REPEAT T TIMES ( INCREASE R )
CLEAR U
INCREASE U
REPEAT R TIMES ( CLEAR U )
REPEAT U TIMES ( INCREASE Z )
)
)
REPEAT A TIMES (
REPEAT C TIMES (
# if I is odd
REPEAT S TIMES (
REPEAT I TIMES ( INCREASE X )
INCREASE X
PRINT X
# I=floor(X/2)
CLEAR R
CLEAR I
REPEAT X TIMES (
CLEAR T
INCREASE T
REPEAT R TIMES ( CLEAR T )
CLEAR R
REPEAT T TIMES ( INCREASE R )
CLEAR U
INCREASE U
REPEAT R TIMES ( CLEAR U )
REPEAT U TIMES ( INCREASE I )
)
)
# if I is even
CLEAR G
INCREASE G
REPEAT S TIMES ( CLEAR G )
REPEAT G TIMES (
CLEAR X
REPEAT I TIMES ( INCREASE X )
PRINT X
# I=floor(X/2)
CLEAR I
REPEAT Z TIMES ( INCREASE I )
)
# Z=floor(I/2), S=parity(I)
CLEAR S
CLEAR Z
REPEAT I TIMES (
CLEAR T
INCREASE T
REPEAT S TIMES ( CLEAR T )
CLEAR S
REPEAT T TIMES ( INCREASE S )
CLEAR U
INCREASE U
REPEAT S TIMES ( CLEAR U )
REPEAT U TIMES ( INCREASE Z )
)
# if new I is odd
REPEAT S TIMES (
PRINT I
)
# check if Z == 0
CLEAR L
INCREASE L
REPEAT Z TIMES ( CLEAR L )
REPEAT L TIMES ( CLEAR C )
)
)