Listalla on aluksi kokonaisluku 1. Joka kierroksella poistat listalta pienimmän alkion x ja lisäät listalle alkiot 2x ja 3x. Mikä on listan pienin alkio n kierroksen jälkeen? Voit olettaa, että n on enintään 10^5.
Esimerkiksi kun n=5, lista muuttuu näin:
[1] \rightarrow [2,3] \rightarrow [3,4,6] \rightarrow [4,6,6,9] \rightarrow [6,6,9,8,12] \rightarrow [6,9,8,12,12,18]
Tässä tapauksessa listan pienin alkio lopussa on 6.
Python
Toteuta tiedostoon twothree.py funktio smallest, joka antaa vastauksen.
def smallest(n):
    # TODO
if __name__ == "__main__":
    print(smallest(1)) # 2
    print(smallest(5)) # 6
    print(smallest(123)) # 288
    print(smallest(55555)) # 663552
Java
Toteuta tiedostoon TwoThree.java metodi smallest, joka antaa vastauksen.
public class TwoThree {
    public int smallest(int n) {
        // TODO
    }
    public static void main(String[] args) {
        TwoThree t = new TwoThree();
        System.out.println(t.smallest(1)); // 2
        System.out.println(t.smallest(5)); // 6
        System.out.println(t.smallest(123)); // 288
        System.out.println(t.smallest(55555)); // 663552
    }
}
