Un modo per rappresentare un numero naturale è moltiplicando gli esponenti dei numeri primi. Ad esempio, 6 possono essere rappresentati da 2 ^ 1 * 3 ^ 1 e 50 possono essere rappresentati da 2 ^ 1 * 5 ^ 2 (dove ^ indica esponenzione). Il numero di numeri primi in questa rappresentazione può aiutare a determinare se è più breve usare questo metodo di rappresentazione, rispetto ad altri metodi. Ma poiché non voglio calcolarli a mano, ho bisogno di un programma per farlo per me. Tuttavia, poiché dovrò ricordare il programma fino a quando non torno a casa, deve essere il più breve possibile.
Il tuo compito:
Scrivi un programma o una funzione per determinare quanti numeri primi distinti ci sono in questa rappresentazione di un numero.
Ingresso:
Un numero intero n tale che 1 <n <10 ^ 12, preso con qualsiasi metodo normale.
Produzione:
Il numero di numeri primi distinti necessari per rappresentare l'input, come indicato nell'introduzione.
Casi test:
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)
Questo è OEIS A001221 .
punteggio:
Questo è code-golf , il punteggio più basso in byte vince!