En arithmétique, un nombre n-lisse , où n est un nombre premier donné, est défini mathématiquement comme un entier positif qui n'a pas de facteurs premiers supérieurs à n. Par exemple, 42 est 7-lisse parce que tous ses facteurs premiers sont inférieurs ou égaux à 7, mais 44 n'est pas 7-lisse car il a également 11 comme facteur premier.
Définissez un nombre assez lisse comme un nombre sans facteur premier supérieur à sa propre racine carrée. Ainsi, la liste des nombres assez lisses peut être formulée comme suit:
- (MODIFIÉ!) 1 est un nombre assez lisse, en raison de son absence totale de facteurs premiers. (Notez que dans la version originale de cette question, 1 a été exclu par erreur de la liste, donc si vous l'excluez de vos sorties, vous ne serez pas marqué comme mauvais.)
- Entre 4 (= 2 2 ) et 8, les nombres assez lisses sont à 2 lisses, ce qui signifie qu'ils ont 2 comme seul facteur premier.
- Entre 9 (= 3 2 ) et 24, les nombres assez lisses sont 3-lisses, et peuvent avoir 2 et 3 dans leurs factorisations principales.
- Entre 25 (= 5 2 ) et 48, les nombres assez lisses sont 5-lisses et peuvent avoir 2s, 3s et 5s dans leurs factorisations principales.
- Et ainsi de suite, en améliorant les critères à chaque fois que le carré du prochain nombre premier est atteint.
La liste des nombres assez lisses est fixe et commence comme suit: 1, 4, 8, 9, 12, 16, 18, 24, 25, ...
Votre défi est d'écrire du code qui produira tous les nombres assez fluides jusqu'à 10 000 inclus (= 100 2 ). Il doit y avoir au moins un séparateur (peu importe le type - espace, virgule, nouvelle ligne, quoi que ce soit) entre chaque numéro de la liste et le suivant, mais le caractère utilisé n'a aucune importance.
Comme d'habitude, le nombre d'octets le plus bas l'emporte - évidemment, la simple sortie de la liste ne vous sera pas trop bénéfique ici. Bonne chance!
1
)