Si vous avez déjà entendu parler des nombres premiers en classe de mathématiques, vous avez probablement dû, à un moment donné, déterminer si un nombre est premier. Vous avez probablement gâché pendant que vous les appreniez, par exemple, en prenant 39 pour un premier. Eh bien, ne vous inquiétez pas, car 39 est un semi-premier, c'est-à-dire qu'il est le produit de deux nombres premiers.
De même, nous pouvons définir un k- presque premier comme étant le produit de k nombres premiers. Par exemple, 40 est le 4e 4-presque premier; 40 = 5 * 2 * 2 * 2, le produit de 4 facteurs.
Votre tâche consiste à écrire un programme / une fonction qui accepte deux entiers n et k comme entrée et sortie / retourne le n ème k- presque premier nombre. Il s'agit d'un code-golf, donc le programme le plus court en octets l'emporte.
Cas de 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
Divers
Vous devez générer vous-même les nombres premiers par tout autre moyen qu'un simple formulaire fermé, si un tel formulaire fermé existe.
f
en termes de f[n,1]
soit correcte, car les listes de presque premiers contiennent des nombres impairs (par exemple les deux derniers exemples, qui ne sont pas exprimables comme le produit d'une puissance de deux et d'un nombre premier). (Et ça dit aussi ça f[n,1] == 2*f[n,1]
.)