Se hai mai imparato a conoscere i numeri primi in classe di matematica, probabilmente avrai dovuto, a un certo punto, determinare se un numero è primo. Probabilmente hai fatto un casino mentre li stavi ancora imparando, ad esempio, scambiando 39 per un numero primo. Bene, non ti preoccupare, dato che 39 è un semiprime, cioè che è il prodotto di due numeri primi.
Allo stesso modo, possiamo definire un k -almost prime come il prodotto di k numeri primi. Ad esempio, 40 è il 4 ° 4-quasi primo; 40 = 5 * 2 * 2 * 2, il prodotto di 4 fattori.
Il vostro compito è quello di scrivere un programma / funzione che accetta due interi n e k come input e output / restituire il n ° k -quasi numero primo. Questo è un codice-golf, quindi vince il programma più breve in byte.
Casi test
n, k => output
n, 1 => the nth prime number
1, 1 => 2
3, 1 => 5
1, 2 => 4
3, 2 => 9
5, 3 => 27
miscellaneo
Devi generare tu stesso i numeri primi con qualsiasi mezzo diverso da una semplice forma chiusa, se esiste una tale forma chiusa.
f
in termini di f[n,1]
sia corretta, poiché le liste di quasi-primi contengono numeri dispari (ad esempio gli ultimi due esempi, che non sono espressi come il prodotto di una potenza di due e un numero primo). (E lo dice anche f[n,1] == 2*f[n,1]
.)