此算法的时间复杂度是多少?
void prime(int n) {
int i = 2;
while ((n % i) && i <= sqrt(n))
i++;
if (i > sqrt(n))
print(“%d is a prime number\n”, n);
else
print(“%d is not a prime number\n”, n);
}
答案 0 :(得分:1)
复杂度约为O(sqrt(N))。有些书会将其表示为O(N 0.5 )。
在循环的每次迭代中重新计算平方根。这是一个相当慢的操作,因此它比最佳速度慢,但只是一个常数因子,因此它不会影响计算复杂性。
答案 1 :(得分:0)