Nous avons eu un défi de factorisation de premier ordre il y a quelque temps, mais ce défi remonte à près de six ans et répond à peine à nos exigences actuelles, donc je crois qu'il est temps d'en relever un nouveau.
Défi
Écrivez un programme ou une fonction qui prend en entrée un entier supérieur à 1 et génère ou renvoie une liste de ses facteurs premiers.
Règles
- L'entrée et la sortie peuvent être fournies par n'importe quelle méthode standard et dans n'importe quel format standard.
- Les facteurs en double doivent être inclus dans la sortie.
- La sortie peut être dans n'importe quel ordre.
- L'entrée ne sera pas inférieure à 2 ni supérieure à 2 31 - 1.
- Les fonctions intégrées sont autorisées, mais l'inclusion d'une solution non intégrée est encouragée.
Cas de test
2 -> 2
3 -> 3
4 -> 2, 2
6 -> 2, 3
8 -> 2, 2, 2
12 -> 2, 2, 3
255 -> 3, 5, 17
256 -> 2, 2, 2, 2, 2, 2, 2, 2
1001 -> 7, 11, 13
223092870 -> 2, 3, 5, 7, 11, 13, 17, 19, 23
2147483646 -> 2, 3, 3, 7, 11, 31, 151, 331
2147483647 -> 2147483647
Notation
Il s'agit de code-golf , donc le code le plus court en octets l'emporte.