我一直在寻找确定数字除数的最有效方法。我发现有一篇文章提到,与其从1 upto n
开始迭代,还可以通过从1 upto sqrt(n)
进行迭代来减少总体运行时间,并且假设1<=k<=sqrt(n)
和k
是一个除以数字n
的除数,然后将另一个除数为n/k
。
有什么数学证据证明为什么我们只需要迭代最多sqrt(n)
?
答案 0 :(得分:0)
如果您有一个除数d >sqrt(n)
,则其互补除数n/d
将小于n/sqrt(n)
,等于sqrt(n)
,因此您已经找到了{{ 1}},直到您的算法结束,因此n/d
也就是n/(n/d)
。