CSES - Listan pienin

Listalla on aluksi kokonaisluku 1. Joka askeleella listalta poistetaan pienin luku (merkitään tätä lukua x:llä) sekä listan loppuun lisätään luvut 2x ja 3x, jos ne eivät esiinny listalla.

Tehtäväsi on selvittää listan pienin luku, kun kaikki askeleet on suoritettu. Esimerkiksi kun askelten määrä on 5, lista muuttuu näin:

[1] \rightarrow [2,3] \rightarrow [3,4,6] \rightarrow [4,6,9] \rightarrow [6,9,8,12] \rightarrow [9,8,12,18]

Tässä tapauksessa listan pienin luku lopussa on 8.

Toteuta tiedostoon twothree.py funktio find_smallest, jolle annetaan askelten määrä. Funktion tulee palauttaa listan pienin luku askelten jälkeen.

Toteuta funktio niin, että se suorittaa nopeasti jokaisen askeleen. Funktion tulee antaa tulos välittömästi myös tehtäväpohjan viimeisessä testissä.

def find_smallest(steps):
    # TODO

if __name__ == "__main__":
    print(find_smallest(0)) # 1
    print(find_smallest(1)) # 2
    print(find_smallest(2)) # 3
    print(find_smallest(3)) # 4
    print(find_smallest(4)) # 6
    print(find_smallest(5)) # 8

    print(find_smallest(42)) # 1296
    print(find_smallest(1337)) # 16210220612075905068
    print(find_smallest(123123)) # 47241633171870338440585357243035120029747450090811731814934867117962334088709324512562801224664331563355142646399182644605958987116029586018592281978123083613432358051028210559768563023872