for (k = 1; k <= n; k++)
for (i = 1; i*i <= n; i++)
// some O(1) operations`
要求我找到此代码的大范围。我用i*i < n
计算。我可以将其重写为I < n/I
。如此追踪,我得到了以下内容:
I # of interations
1 n
2 n/2
3 n/3
. .
. .
. .
n/L 1
尽管我不确定如何从这里开始。我应该计算从i = 0到n的n / i的总和吗?在那种情况下,当变量(n)存在时,我该如何计算总和?
我知道,如果找到L,我会找到所需的迭代次数。由于它在L = N / L之后终止,因此我无法根据N来计算L。
我对此很困惑。任何见识将不胜感激。
答案 0 :(得分:1)
外部循环有N次迭代。内部循环具有squareroot(N)迭代。将这两个乘以找到答案。