Une puissance première est un entier positif n qui peut s'écrire sous la forme n = p k où p est un nombre premier et k est un entier positif. Par exemple, certains pouvoirs principaux le sont [2, 3, 5, 4, 9, 25, 8, 27, 125]
.
Ensuite, considérons des puissances premières de 2. Celles-ci sont [2, 4, 8, 16, ...]
et peuvent être écrites sous la forme 2 k . Ils seraient tous inclus lorsque l'on considère les puissances premières inférieures à 20. Cependant, 16 est la puissance première maximale avec un nombre premier de base de 2 dans cette plage. Une puissance première p k est maximale dans une plage si elle est la puissance la plus élevée de p dans cette plage. Nous ne sommes intéressés que par la puissance primaire maximale dans chaque plage, donc toutes les puissances primaires inférieures doivent être exclues.
Votre objectif est d'écrire une fonction ou un programme qui prend un entier positif n et génère les puissances premières maximales dans la plage [2, 3, 4, ..., n]
.
Merci à @ Peter Taylor d' avoir clarifié la définition de la puissance maximale maximale et plus encore.
Règles
- C'est du code-golf, alors faites votre code le plus court possible.
- Les puissances premières maximales peuvent être émises dans n'importe quel ordre mais il ne doit pas y avoir de doublons.
Cas de test
n result
1 []
2 [2]
3 [2, 3]
4 [3, 4]
5 [3, 4, 5]
6 [3, 4, 5]
7 [3, 4, 5, 7]
20 [5, 7, 9, 11, 13, 16, 17, 19]
50 [11, 13, 17, 19, 23, 25, 27, 29, 31, 32, 37, 41, 43, 47, 49]
100 [11, 13, 17, 19, 23, 25, 29, 31, 37, 41, 43, 47, 49, 53, 59, 61, 64, 67, 71, 73, 79, 81, 83, 89, 97]
10000 <1229 results>
[101, 103, 107, 109, 113, 127, 131, 137, 139, 149, ..., 9887, 9901, 9907, 9923, 9929, 9931, 9941, 9949, 9967, 9973]
La liste complète des puissances premières maximales pour 10000 peut être trouvée ici .