2016-01-09 48 views
4

假设我们有一些因数N.我想找到一个有N个因子的minimum number找到一个具有N个因子的最小数字

我的算法

  • 我发现素数(PM = [2,3,5,7,..])
  • 我已经发现N为素数因子(N = 12,P = [2 ,2,3],颠倒p RP = [3,2,2])
  • 数* = pm[i]^(rp[i]-1),I = 1 ...素的长度因子

对于N = 12,回答是60 = 2^(3-1) * 3^(2-1) * 5^(2-1)

但是对于数字243,我的算法给出了错误的答案(5336100 - 但它不是具有243个除数的最小数)。预计号码是2822400

我的错在哪里?任何文学?

+0

@SalvadorDali,如果你能给我关于这个任务的文章和文献,这将是很酷的。我的意思是理论。 –

+0

这对N = 3也不会失败吗?你的方法似乎给8,但不是6正确答案? –

+0

@HemanGandhi我的方法给出N = 3的4。2 ^(3-1)= 4和4是正确的答案。 –

回答

6

让我们从OEIS sequence开始。现在任何数字都可以表示为主要权力的乘积。

enter image description here

How many divisors将能有多少?您可以使用证明组合学,这将有:

enter image description here

所以,你要解决的方程式,其中上面的表达式等于你有分割数。我不会在这里编写代码,但请注意,因为您正在寻找整数解决方案,所以可以计算出您的除数。

当你找到你的m_i,你可以通过排序m_i和分配最大的m_i到最小的素数得到你的最小数字。所以如果你的m1 = 2,m2 = 5,m3 = 2的号码是2^5 * 3^2 * 5^2

+0

这个答案不是很有帮助。你只是重新描述OP在他的问题中已经有的技巧,而且正如他所说,并不总是给出正确的答案。问题是'm_i'的解决方案不是唯一的。请参阅@ user3386109答案以供进一步分析。 – kfx

+0

@kfx稍后我会让它更有帮助。对不起,这对你没有帮助。 –

4

大厦在SalvadorDali的回答是:

鉴于N是通过计算N的因式分解,再减去1(我 + 1M ),您试图找到更的产品来自每个因素。

这不一定会给出最小的答案,如您的示例中所示,N = 243。243的因式分解是

243 = 3*3*3*3*3 

所以你的方法建议,至少应

2^2 * 3^2 * 5^2 * 7^2 * 11^2 = 5336100 

但是,243的替代复合分解为

243 = 9*3*3*3 

这表明最低应该

2^8 * 3^2 * 5^2 * 7^2 = 2822400 

由于2^6小于11^2,综合因子分解效果更好。所以一般来说,你的方法只是一个起点。在计算你的答案后,你需要将最大的素数折成最小的素数来改善答案。