Certains nombres tels que: 6, 12, 20, 30, 42, 56, 60, 90, 120 et ainsi de suite peuvent être exprimés comme un produit de nombres entiers consécutifs comme indiqué ci-dessous.
6 = 2 * 3
12 = 3 * 4
30 = 5 * 6
60 = 3 * 4 * 5
90 = 9 * 10
120 = 4 * 5 * 6
Écrivez un programme ou une fonction qui génère une liste d'entiers consécutifs dont le produit est égal au nombre spécifié.
Voici des exemples de nombres qui ne conviennent pas à cette logique:
99 = 9 * 11 (Product of non-consecutive numbers)
121 = 11 * 11 (Same numbers)
2 = 1 * 2 (Product of itself and 1)
13 = 13 (Product of only one number)
Veuillez noter que dans le cas de 2 = 2 * 1 , nous ne le considérons pas comme un résultat valide, car un entier multiplié par 1 donne le même résultat. Pour cette question, nous considérons uniquement les entiers> = 2 dans le produit.
Contribution
Un entier positif 32 bits valide. Peut provenir d'une entrée standard, d'un argument de fonction, etc.
Production
Une liste de nombres entiers consécutifs> = 2 (dans l'ordre croissant ou décroissant). S'il y a plusieurs combinaisons d'entiers consécutifs, il suffit d'en fournir un instance. Si vous fournissez plus, c'est bien.
Restrictions
Le code doit prendre un temps raisonnable (<5 minutes) pour s'exécuter sur un ordinateur standard pour toutes les entrées valides (entiers 32 bits positifs). S'il existe un produit entier consécutif, le code doit en afficher un ou plusieurs dans le délai imparti. Sinon, le code doit se terminer sans sortie dans le délai imparti.
Il s'agit du code golf, donc le code le plus court en octets l'emporte.
30=5*6.