Algunos números como: 6, 12, 20, 30, 42, 56, 60, 90, 120, etc., se pueden expresar como un producto de números enteros consecutivos como se muestra a continuación.
6 = 2 * 3
12 = 3 * 4
30 = 5 * 6
60 = 3 * 4 * 5
90 = 9 * 10
120 = 4 * 5 * 6
Escriba un programa o función que genere una lista de enteros consecutivos cuyo producto sea igual al número especificado.
Ejemplos de números que no son adecuados para esta lógica son:
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)
Tenga en cuenta que para el caso de 2 = 2 * 1, no lo consideramos como un resultado válido, ya que un número entero multiplicado por 1 da el mismo resultado. Para esta pregunta, consideraríamos solo enteros> = 2 en el producto.
Entrada
Un entero positivo válido de 32 bits. Puede ser de entrada estándar, un argumento de función, etc.
Salida
Una lista de números enteros consecutivos> = 2 (en orden ascendente o descendente). Si hay varias combinaciones de enteros consecutivos, solo proporcione una instancia. Si proporciona más, está bien.
Restricciones
El código debe tomar un tiempo razonable (<5 minutos) para ejecutarse en una computadora estándar para todas las entradas válidas (enteros positivos de 32 bits). Si hay un producto entero consecutivo, el código debe generar uno o más dentro del límite de tiempo. De lo contrario, el código debe terminar sin salida dentro del límite de tiempo.
Este es el código de golf, por lo que gana el código más corto en bytes.
30=5*6.