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