假设我们有一些除数N.我想找到一个minimum number
具有N个除数的除数.
我的算法
我找到了素数(pm = [2,3,5,7,..])
我找到了N的素因子(N = 12,p = [2,2,3],反转p rp = [3,2,2])
number*= pm[i]^(rp[i]-1)
,i = 1 ...素数因子的长度
对于N = 12,答案是 60 = 2^(3-1) * 3^(2-1) * 5^(2-1)
但是对于数字243,我的算法给出了错误的答案(5336100 - 但它不是具有243个除数的最小数).预期的数字是2822400
.
我的错在哪里?有文献吗?
让我们从OEIS序列开始.现在任何数字都可以表示为主要权力的乘积.
它会有多少个除数?您可以使用组合学来证明它将具有:
因此,您必须求解上面的表达式等于您拥有的除法数的等式.我不会在这里编写代码,但请注意,因为您正在寻找整数解,所以您可以计算出除数的数量.
当你找到你的时候m_i
,你可以通过排序m_i
和分配最大m_i
到最小的素数来获得最小的数字.所以,如果你的m1 = 2
,m2 = 5
,m3 = 2
,数量会2^5 * 3^2 * 5^2
.