# Alkuarvo X on annettu
REPEAT UNTIL X = 1 (
PRINT X # Tulostetaan nykyinen X
CLEAR A # A toimii apumuuttujana
CLEAR B # B kopioi X
# Kopioidaan X:ään B
REPEAT X TIMES (
INCREASE B
)
CLEAR C # C toimii modulo 2 laskentaan
CLEAR D # D toimii laskurin apumuuttujana
# Modulo 2 laskenta silmukoilla
REPEAT B TIMES (
INCREASE D
INCREASE C
INCREASE C
# Jos C > B, modulo-laskenta valmis
)
# Parillinen haara
CLEAR E # E = X / 2
REPEAT C TIMES (
INCREASE E
)
CLEAR F # F = 3*X + 1
REPEAT X TIMES (
INCREASE F
INCREASE F
INCREASE F
)
INCREASE F # F = 3*X + 1
# Valitaan X = E jos parillinen, muuten X = F
CLEAR X
REPEAT E TIMES (
INCREASE X
)
# Jos pariton, ylikirjoitetaan X
# Tämä varmistaa, että X = 3*X + 1 parittomalle
# Tarkistuksen voi toteuttaa modulo 2 tuloksen perusteella
)
PRINT X # Tulostetaan viimeinen 1