以下是代码:
int foo(int n)
{
if(n == 1)
return 1;
int f = 0;
int i;
for(i=1; i*i<=n; i++)
if(n%i == 0)
f+=2;
i--;
if(i*i == n)
f--;
return f;
}
我的问题是我无法确定此for循环的Θ,
我认为它是平方根(n)但是有一个名为平方根n的命令吗?
我的回答是:
Theta(sqrt(n))因为这个循环
for(i=1; i*i<=n; i++)
i * i <= n
获取双方的sqrt
i <= sqrt(n)
如果我错了,请纠正我!
答案 0 :(得分:1)
O(sqrt n)看起来很奇怪,但对我来说是正确的