Uma maneira de representar um número natural é multiplicando expoentes de números primos. Por exemplo, 6 podem ser representados por 2 ^ 1 * 3 ^ 1 e 50 podem ser representados por 2 ^ 1 * 5 ^ 2 (onde ^ indica exponência). O número de primos nessa representação pode ajudar a determinar se é mais curto usar esse método de representação, em comparação com outros métodos. Mas como não quero calculá-las manualmente, preciso de um programa para fazer isso por mim. No entanto, como terei que me lembrar do programa até chegar em casa, ele deve ser o mais curto possível.
Sua tarefa:
Escreva um programa ou função para determinar quantos primos distintos existem nessa representação de um número.
Entrada:
Um número inteiro n tal que 1 <n <10 ^ 12, obtido por qualquer método normal.
Resultado:
O número de primos distintos necessários para representar a entrada, conforme descrito na introdução.
Casos de teste:
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)
Este é o OEIS A001221 .
Pontuação:
Isso é código-golfe , a menor pontuação em bytes ganha!