我正在尝试解决以下问题https://open.kattis.com/problems/listgame2 并且我能够成功生成给定数字的所有素因子,但是问题要求我只需要获取唯一数字列表即可。
例如- 1099511627776 = 2 ^ 40 但是由于数字2重复了40次,所以问题在于将2 ^ 40简化为2 * 4 * 8 * .... == 1099511627776,而无需重复任何整数即可得出乘积。
我在Algorithm: Factorize a integer X to get as many distinct positive integers(Y1...Yk) as possible so that (Y1+1)(Y2+1)...(Yk+1) = X的Stackoverflow上发现了类似的问题 但没有提供逻辑
上述链接的一个反例是数字10307264 = 2 ^ 6 * 11 ^ 5,该数字可能应减少为2 * 4 * 11 * 22 * 44 * 121 == 10307264
我不是在寻找解决方案,而是在讨论寻找最佳解决方案的具体逻辑。 提前致谢!