CSES - Listan pienin

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
    }
}