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 M 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 ) )