INCREASE U
REPEAT X TIMES ( # Sets Q to 1 if we should print anything after. if its zero, we dont do anything
INCREASE V
REPEAT O TIMES ( # Runs on second ( V > 1 ), sets Q = 1
CLEAR O
INCREASE Q
)
REPEAT U TIMES ( # Runs on first
CLEAR Q
INCREASE O
CLEAR U
)
)
PRINT X
CLEAR X
INCREASE E # E = 178
INCREASE E
INCREASE E
INCREASE E
INCREASE E
INCREASE E
INCREASE E
INCREASE E
INCREASE E
INCREASE E
INCREASE E
REPEAT E TIMES (
INCREASE E
INCREASE E
INCREASE E
)
REPEAT E TIMES (
INCREASE E
INCREASE E
INCREASE E
)
INCREASE E
INCREASE E
INCREASE L
INCREASE A
INCREASE M # V on arvo, J on puolet. Vastakohtana N
REPEAT E TIMES (
REPEAT Q TIMES (
# Check for divisible by 2, output to C, A AND J
REPEAT L TIMES ( # L tarkoittaa, että tarvitsee tarkistaa parillisuus
CLEAR A
INCREASE A
REPEAT M TIMES (
CLEAR J
REPEAT V TIMES (
REPEAT A TIMES (
CLEAR A
CLEAR C
INCREASE J
)
REPEAT C TIMES (
CLEAR C
INCREASE A
)
INCREASE C
)
)
REPEAT N TIMES (
CLEAR V
REPEAT J TIMES (
REPEAT A TIMES (
CLEAR A
CLEAR C
INCREASE V
)
REPEAT C TIMES (
CLEAR C
INCREASE A
)
INCREASE C
)
)
CLEAR L
)
INCREASE L
# Ennen C:tä, sillä C voi asettaa A = 1
REPEAT A TIMES ( # parillinen, V = V / 2
CLEAR C
REPEAT A TIMES (
# Aika huono tapa vaihtaa näiden kahden välillä mutta kai se toimii
REPEAT M TIMES (
# Tehdään J:stä pää arvo
CLEAR M
CLEAR A
INCREASE N
)
REPEAT A TIMES (
# Tehdään V:stä pää arvo
CLEAR N
CLEAR A
INCREASE M
)
INCREASE A
)
CLEAR O
CLEAR U
INCREASE U
# nyt määritetään, että täytyykö jatkaa tulostamista (onko V = 1)
REPEAT M TIMES (
REPEAT V TIMES ( # Käytetään jos puolikasta, sillä juuri ennen tätä puolikas vaihdettiin jo
REPEAT U TIMES ( # Runs on first
REPEAT O TIMES ( # Runs on second ( V > 1 ), sets Q = 1
INCREASE Q
CLEAR U
)
REPEAT U TIMES (
CLEAR Q
INCREASE O
)
)
)
)
REPEAT N TIMES (
REPEAT J TIMES (
REPEAT U TIMES ( # Runs on first
REPEAT O TIMES ( # Runs on second ( V > 1 ), sets Q = 1
INCREASE Q
CLEAR U
)
REPEAT U TIMES (
CLEAR Q
INCREASE O
)
)
)
)
# Emme tiedä onko parillinen vai ei, joten asetetaan seuraava kierros laskemaan parillisuus
)
REPEAT C TIMES ( # pariton, V = 3*V
# Tässä laskemme seuraavan arvon, tulostamme sen, jonka jälkeen lasketaaan myös toisiksi seuraavan arvon ja asetetaan se V:ksi
CLEAR P
REPEAT M TIMES (
REPEAT V TIMES (
INCREASE P
INCREASE P
INCREASE P
)
)
REPEAT N TIMES (
REPEAT J TIMES (
INCREASE P
INCREASE P
INCREASE P
)
)
INCREASE P
# Nyt P on yhtä suuri kuin nykyinen tarvittava elementti
PRINT P
#CLEAR K
CLEAR I
INCREASE I
CLEAR H
REPEAT M TIMES (
REPEAT J TIMES ( # Lisätään siihen J niin saadaan sitä seuraava arvo, J on tässä vaiheessa puolet arvosta (ensimmäisestä aloittaen)
INCREASE V # Tiedetään jo, että onko V jaollinen. Nyt tarvitsee tarkistaa vain uudet lisäykset
REPEAT A TIMES (
CLEAR A
CLEAR C
INCREASE J
REPEAT I TIMES (
CLEAR I
CLEAR K
INCREASE H
)
REPEAT K TIMES (
CLEAR K
INCREASE I
)
INCREASE K
)
REPEAT C TIMES (
CLEAR C
INCREASE A
)
INCREASE C
)
)
REPEAT N TIMES (
REPEAT V TIMES ( # Lisätään siihen J niin saadaan sitä seuraava arvo, J on tässä vaiheessa puolet arvosta (ensimmäisestä aloittaen)
INCREASE J # Tiedetään jo, että onko V jaollinen. Nyt tarvitsee tarkistaa vain uudet lisäykset
REPEAT A TIMES (
CLEAR A
CLEAR C
INCREASE V
REPEAT I TIMES (
CLEAR I
CLEAR K
INCREASE H
)
REPEAT K TIMES (
CLEAR K
INCREASE I
)
INCREASE K
)
REPEAT C TIMES (
CLEAR C
INCREASE A
)
INCREASE C
)
)
REPEAT A TIMES ( # Jos seuraava on parillinen, on sen puolikas sama kuin J, joka on 0,75x alkuperäisestä V:stä
CLEAR C
# Aika huono tapa vaihtaa näiden kahden välillä mutta kai se toimii
REPEAT M TIMES (
PRINT V
# Tehdään J:stä pää arvo
CLEAR M
CLEAR A
INCREASE N
)
REPEAT A TIMES (
PRINT J
# Tehdään V:stä pää arvo
CLEAR N
CLEAR A
INCREASE M
)
# Nyt on siis parillinen kyseessä. Tossa yhdessä kohtaa aikasemmin kun määritämme puolikkaan parittomuuden, määritämme myös neljäsosan parittomuuden.
# Jos se on parillinen, on silloin vastaus pariton
# Tässä vaiheessa K = 1 aina, mutta I = 1 vaan kun seuraava tulee olemaan pariton myös
# Myös A = 1, joten se voidaan jättää siihen tilanteeseen jos 1 = 0
#PRINT I
#PRINT K
REPEAT I TIMES (
INCREASE C
CLEAR A
)
# Ongelmana on se, että ei me olla laskettu seuraavan numeron J tai V arvoa. Se periaatteessa on sama kuin H * 3, jossa H on aivan alkuperäinen jaettuna kahdeksalla
REPEAT M TIMES (
CLEAR J
REPEAT H TIMES (
INCREASE J
INCREASE J
INCREASE J
)
INCREASE J
)
REPEAT N TIMES (
CLEAR V
REPEAT H TIMES (
INCREASE V
INCREASE V
INCREASE V
)
INCREASE V
)
#PRINT E
#PRINT V
#PRINT J
#PRINT H
#PRINT M
#PRINT N
CLEAR L
)
REPEAT C TIMES ( # pariton, selkeä tapaus
CLEAR L
)
)
REPEAT M TIMES (
PRINT V
#PRINT A
#PRINT C
)
REPEAT N TIMES (
PRINT J
#PRINT A
#PRINT C
)
)
)