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 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 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 C TIMES ( CLEAR C INCREASE A ) INCREASE C ) ) REPEAT A TIMES ( # Jos seuraava on pariton, 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 ) INCREASE A ) REPEAT C TIMES ( # Parillinen CLEAR L ) ) REPEAT M TIMES ( PRINT V ) REPEAT N TIMES ( PRINT J ) ) )