Listalla on aluksi kokonaisluku . Joka askeleella listalta poistetaan pienin luku (merkitään tätä lukua :llä) sekä listan loppuun lisätään luvut ja , 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 , lista muuttuu näin:
Tässä tapauksessa listan pienin luku lopussa on .
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