Onderweg terug naar Aarde geeft de hoofd-elf je de controle over de slee. Deze is computergestuurd en gebruikt onderliggend een erg speciale compiler. Het programma dat erop draait bestaat uit een lijst van gehele getallen, die samen instructies vormen. Op de eerste positie van elke instructie (initieel het eerste gehele getal van de lijst, positie 0) zal je telkens een 1, een 2 of een 99 terugvinden. Deze betekenen:
Na elke instructie ga je door naar de volgende, door vier posities naar rechts op te schuiven. Het programma gevormd door de lijst [1, 9, 10, 3, 2, 3, 11, 0, 99, 30, 40, 50] kan dan gesplitst worden als:
1, 9, 10, 3 2, 3, 10, 0 99, 30, 17581, 1090
Na de eerste instructie zullen de getallen op posities 9 en 10 (respectievelijk 30 en 17581) opgeteld worden en opgeslagen worden op positie 3. We vinden dan:
1, 9, 10, 17611 2, 3, 10, 0 99, 30, 17581, 1090
Vervolgens wordt het product van de getallen op posities 3 en 11 (respectievelijk 17611 en 17581) berekend en opgeslagen op positie 0. We vinden dan:
309618991, 9, 10, 17611 2, 3, 10, 0 99, 30, 17581, 1090
Hierna wordt het programma beƫindigd. De output van het programma bevindt zich telkens op de eerste positie (positie 0 dus). De uitdaging bestaat er nu in om te bepalen welke twee getallen (beide liggend tussen 1 en 100, inclusief) op posities 1 en 2 geplaatst moeten worden om als output het getal 19690720 (de datum van de landing op de maan) te bekomen. Dit is het geval voor de getallen 9 en 11:
1, 9, 11, 3 2, 3, 10, 0 99, 30, 17581, 1090
Na instructie 1:
1, 9, 11, 1120 2, 3, 10, 0 99, 30, 17581, 1090
Na instructie 2:
19690720, 9, 11, 1120 2, 3, 10, 0 99, 30, 17581, 1090
Voorzie een functie "machine" die als input een lijst van gehele getallen heeft (het programma) en als output een tuple van twee gehele getallen teruggeeft (de benodigde getallen op posities 1 en 2, respectievelijk). Bijvoorbeeld:
machine([1, 1, 2, 3, 2, 3, 10, 0, 99, 30, 17581, 1090]) # (9, 11)