下面程序的时间复杂度为( )。
1 int primes[MAXP], num = 0; 2 bool isPrime[MAXN] = {false}; 3 void sieve() { 4 for (int n = 2; n <= MAXN; n++) { 5 if (!isPrime[n]) 6 primes[num++] = n; 7 for (int i = 0; i < num && n * primes[i] <= MAXN; i++) { 8 isPrime[n * primes[i]] = true; 9 if (n % primes[i] == 0) 10 break; 11 } 12 } 13 }
O(n)
O(n×log n)
O(n×loglog n)
O(n2)