INCREASE N INCREASE N INCREASE N # constant, N=3
INCREASE M INCREASE M INCREASE M INCREASE M INCREASE M INCREASE M INCREASE M INCREASE M INCREASE M INCREASE M INCREASE M INCREASE M INCREASE M INCREASE M INCREASE M INCREASE M INCREASE M INCREASE M INCREASE M INCREASE M # M=enough to execute
INCREASE F # flag, F=1 while we need to continue
REPEAT infinite TIMES (
REPEAT F TIMES (
CLEAR Y
REPEAT X TIMES (
INCREASE Y
)
CLEAR D # result
CLEAR E # E=1 if not divisible by 2
INCREASE G # flag, G=1 while we need to continue
REPEAT M TIMES (
REPEAT G TIMES (
INCREASE D
#substract 2 from X, result is in X
CLEAR B
REPEAT X TIMES (
CLEAR C
REPEAT B TIMES (
INCREASE C
)
INCREASE B
)
CLEAR B
REPEAT C TIMES (
CLEAR X
REPEAT B TIMES (
INCREASE X
)
INCREASE B
)
)
CLEAR G
# checking if X is equal to 0
REPEAT X TIMES (
CLEAR G
INCREASE G
)
# checking if X is equal to 1
REPEAT G TIMES (
CLEAR B
REPEAT X TIMES (
CLEAR C
REPEAT B TIMES (
INCREASE C
)
INCREASE B
)
REPEAT C TIMES (
CLEAR G
INCREASE G
CLEAR E
INCREASE E
)
)
)
REPEAT E TIMES (
CLEAR D
REPEAT N TIMES (
REPEAT Y TIMES (
INCREASE D
)
)
INCREASE D
)
CLEAR X
REPEAT D TIMES (
INCREASE X
)
PRINT X
)
#subtract 1 from X, result in Z
REPEAT X TIMES (
CLEAR Z
REPEAT Y TIMES (
INCREASE Z
)
INCREASE Y
)
# if X=1, F=0, so no more action
CLEAR F
REPEAT Z TIMES (
CLEAR F
INCREASE F
)
)