算法或c代码实现,以找到具有n个或更多除数的最小正整数

时间:2012-07-28 16:24:04

标签: c algorithm mathematical-optimization performance

找到具有给定或更多除数的最小整数的有效方法是什么? 我天真地想到的是找到从2开始的数字的除数。 当然这不是最好的方法。 有没有办法猜测接近答案的起点?可能是n与它可以拥有的除数之间的某种关系。

2 个答案:

答案 0 :(得分:3)

如果数字n的素数分解为: n = p1^a * p2^b * p3^c然后除数的数量为(a + 1) * (b + 1) * (c + 1)

这是解决方案的提示。

问题并非如此简单。

我发现有趣的定理和论文解决了这个问题:

http://oeis.org/A005179

http://www.math.hawaii.edu/~ron/pdfpapers/ordinarytest.pdf

答案 1 :(得分:0)

你有没有想过使用Eratosthenes筛子的改编来做到这一点?依次浏览可能的除数,并在适当的点加1到累计总数。例如,当你达到5时,将总数加1为5,10,15 ......这样做不会对代码进行很好的修改。