Jednym ze sposobów przedstawienia liczby naturalnej jest pomnożenie wykładników liczb pierwszych. Na przykład 6 może być reprezentowane przez 2 ^ 1 * 3 ^ 1, a 50 może być reprezentowane przez 2 ^ 1 * 5 ^ 2 (gdzie ^ oznacza eksponencję). Liczba liczb pierwszych w tej reprezentacji może pomóc ustalić, czy użycie tej metody reprezentacji jest krótsze w porównaniu z innymi metodami. Ale ponieważ nie chcę ich obliczać ręcznie, potrzebuję programu, który to dla mnie zrobi. Ponieważ jednak muszę pamiętać program, dopóki nie wrócę do domu, musi on być jak najkrótszy.
Twoje zadanie:
Napisz program lub funkcję, aby określić, ile różnych liczb pierwszych znajduje się w tej reprezentacji liczby.
Wejście:
Liczba całkowita n taka, że 1 <n <10 ^ 12, przyjęta dowolną normalną metodą.
Wynik:
Liczba różnych liczb pierwszych wymaganych do przedstawienia danych wejściowych, zgodnie z opisem we wstępie.
Przypadki testowe:
24 -> 2 (2^3*3^1)
126 -> 3 (2^1*3^2*7^1)
1538493 -> 4 (3^1*11^1*23^1*2027^1)
123456 -> 3 (2^6*3^1*643^1)
To jest OEIS A001221 .
Punktacja:
To jest golf golfowy , najniższy wynik w bajtach wygrywa!