Alguns números como: 6, 12, 20, 30, 42, 56, 60, 90, 120 e assim por diante, podem ser expressos como um produto de números inteiros consecutivos, como mostrado abaixo.
6 = 2 * 3
12 = 3 * 4
30 = 5 * 6
60 = 3 * 4 * 5
90 = 9 * 10
120 = 4 * 5 * 6
Escreva um programa ou função que produza uma lista de números inteiros consecutivos cujo produto seja igual ao número especificado.
Exemplos de números que não são adequados para essa lógica são:
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)
Observe que, para o caso de 2 = 2 * 1, não o consideramos um resultado válido, pois um número inteiro multiplicado por 1 fornece o mesmo resultado. Para esta pergunta, consideraríamos apenas números inteiros> = 2 no produto.
Entrada
Um número inteiro positivo válido de 32 bits. Pode ser de entrada padrão, argumento de função etc.
Resultado
Uma lista de números inteiros consecutivos> = 2 (em ordem crescente ou decrescente). Se houver várias combinações de números inteiros consecutivos, forneça apenas uma instância. Se você fornecer mais, tudo bem.
Restrições
O código deve levar um tempo razoável (<5 minutos) para ser executado em um computador padrão para todas as entradas válidas (números inteiros positivos de 32 bits). Se houver um produto inteiro consecutivo, o código deve gerar um ou mais dentro do prazo. Senão, o código deve terminar sem saída dentro do prazo.
Este é o código golf, portanto o código mais curto em bytes vence.
30=5*6.