CSES - Kaikki keot Tehtäväsi on selvittää, montako erilaista $n$-alkiosta minimikekoa voidaan muodostaa luvuista $1,2,\dots,n$.

Esimerkiksi kun $n=4$, vaihtoehdot ovat taulukkoesityksenä $[1,2,3,4]$, $[1,2,4,3]$ ja $[1,3,2,4]$ eli vastaus on $3$.

Voit olettaa, että $n$ on korkeintaan $25$ ja vastaus on korkeintaan $10^{18}$.

Python

Toteuta tiedostoon allheaps.py funktio count, joka antaa kekojen määrän.
def count(n):
    # TODO

if __name__ == "__main__":
    print(count(2)) # 1
    print(count(3)) # 2
    print(count(4)) # 3
    print(count(5)) # 8
    print(count(10)) # 3360
Java

Toteuta tiedostoon AllHeaps.java metodi count, joka antaa kekojen määrän.
public class AllHeaps {
    public long count(int n) {
        // TODO
    }

    public static void main(String[] args) {
        AllHeaps a = new AllHeaps();
        System.out.println(a.count(2)); // 1
        System.out.println(a.count(3)); // 2
        System.out.println(a.count(4)); // 3
        System.out.println(a.count(5)); // 8
        System.out.println(a.count(10)); // 3360
    }
}