# TODO SWITCH FOR WHETEVRE WE SHOULD USE V OR J 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 # Later should be replaced with 1000 or similar 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 INCREASE E INCREASE E INCREASE E 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 #INCREASE N # J on arvo, V on se toinen 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 CLEAR B CLEAR C 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 ) ) REPEAT A TIMES ( CLEAR C ) CLEAR L ) INCREASE L # Ennen C:tä, sillä C voi asettaa A = 1 REPEAT A TIMES ( # parillinen, V = V / 2 CLEAR O CLEAR U INCREASE U REPEAT M TIMES ( CLEAR V REPEAT J TIMES ( INCREASE V #Määritetään, että täytyykö jatkaa tulostamista (onko V = 1) 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 ( CLEAR J REPEAT V TIMES ( INCREASE J #Määritetään, että täytyykö jatkaa tulostamista (onko J = 1) REPEAT U TIMES ( # Runs on first REPEAT O TIMES ( # Runs on second ( J > 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 INCREASE B INCREASE J ) REPEAT C TIMES ( CLEAR C INCREASE A ) REPEAT B TIMES ( CLEAR B 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 INCREASE B INCREASE V ) REPEAT C TIMES ( CLEAR C INCREASE A ) REPEAT B TIMES ( CLEAR B INCREASE C ) ) ) REPEAT A TIMES ( # Jos seuraava on pariton, on sen puolikas sama kuin J, joka on 0,75x alkuperäisestä V:stä # 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 ) #PRINT E #PRINT V #PRINT A #PRINT J #PRINT C #CLEAR L # Ei tarvite tarkistaa parillisuutta ) REPEAT M TIMES ( PRINT V ) REPEAT N TIMES ( PRINT J ) ) )