一些数字,例如:6、12、20、30、42、56、60、90、120等,可以表示为连续整数的乘积,如下所示。
6 = 2 * 3
12 = 3 * 4
30 = 5 * 6
60 = 3 * 4 * 5
90 = 9 * 10
120 = 4 * 5 * 6
编写一个程序或函数,输出连续的整数列表,其乘积等于指定的数字。
不适合此逻辑的数字示例为:
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)
请注意,对于2 = 2 * 1,我们不将其视为有效结果,因为整数乘以1会得到相同的结果。对于这个问题,我们只考虑乘积中的整数> = 2。
输入值
有效的32位正整数。可以来自标准输入,函数参数等。
输出量
≥2的连续整数列表(以升序或降序排列)。如果有连续整数的几种组合,只需提供一个实例即可。如果您提供更多,那就好了。
限制条件
该代码应花费合理的时间(少于5分钟)才能在 标准计算机对于所有有效输入(32位正整数),)。如果存在连续的整数乘积,则代码应在时限内输出一个或多个。否则,该代码应在该时限内终止而没有任何输出。
这是代码高尔夫,因此以字节为单位的最短代码获胜。
30=5*6。