Créez la fonction, le programme ou l'expression la plus courte qui calcule A073329 , c'est-à- a(n)
dire le nième nombre ayant n facteurs premiers distincts. L'entrée est le nombre d'éléments de la séquence à renvoyer. 0 < n
. Je ne suis pas concerné par la précision entière. Je veux juste l'algorithme. Pour les langues qui ne prennent pas en charge des entiers arbitrairement grands, nous prétendons simplement qu'elles le font.
Vous pouvez trouver des cas de test en suivant le lien vers OEIS ci-dessus.
MISE À JOUR:
Permettez-moi de préciser que vous devez renvoyer une séquence entière à partir de votre programme, fonction ou expression. En d'autres termes, f(x)
devrait calculer a(n)
pour tous n
de 1 à x
. Étant donné x
8, votre fonction devrait retourner 2, 10, 60, 420, 4290, 53130, 903210, 17687670
sous forme de tableau ou d'une autre structure de données appropriée.
output a(1), ... a(n)
au lieu de retourner quelque chose, comme un tableau de ...Réponses:
Python, 144 caractères
Il faut environ 2 minutes pour terminer jusqu'à x = 8.
la source
Java, 170 caractères sur une ligne
Mise à jour, +77 caractères IOL
la source
Java (non golfé)
Utilise un algorithme de tamisage. C'est assez rapide. (6 secondes) fonctionnera avec précision pendant jusqu'à
8
, échouera probablement pour quelque chose de plus élevé.la source
JavaScript, 149 caractères
Ne répond pas pour n> = 6, donc je n'ai pas testé combien de temps cela prend (mon navigateur affiche une notification de script bloqué toutes les 10 secondes environ donc je ne peux pas le chronométrer avec précision et je ne veux pas me bloquer complètement si je cochez "ne plus afficher cela" ...)
Edit: Pour renvoyer le tableau est de 200 caractères (+51) :
la source
J, 32 octets
Mais comme je réponds à ma propre question si tard, nous allons simplement laisser cette réponse comme une curiosité.
la source