我有一个数字 x,我希望找到所有独特的方式来编写 a*b*c。唯一的意思是 2*3*5 与 3*2*5 或 5*3*2 相同。
我有一个可行的算法,它采用 x 的素数分解,然后将因子分成三个箱,但它非常缓慢和粗暴,我必须稍后删除重复项,所以我很好奇是否有更快的方法来生成独特的组合直接在这里。
考虑数字 720。
[3, 5, 48]
[5, 9, 16]
[3, 15, 16]
[3, 3, 80]
[2, 5, 72]
[5, 6, 24]
[5, 8, 18]
[2, 15, 24]
[2, 3, 120]
[3, 10, 24]
[6, 8, 15]
[3, 8, 30]
[3, 6, 40]
[2, 8, 45]
[2, 9, 40]
[8, 9, 10]
[4, 5, 36]
[5, 12, 12]
[4, 12, 15]
[3, 4, 60]
[3, 12, 20]
[4, 4, 45]
[4, 9, 20]
[2, 2, 180]
[2, 10, 36]
[2, 12, 30]
[2, 6, 60]
[6, 10, 12]
[2, 4, 90]
[2, 18, 20]
[4, 10, 18]
[4, 6, 30]
[6, 6, 20]