下面代码中的 isPrimeA() 和 isPrimeB() 都用于判断参数 N 是否素数,有关其时间复杂度的正确说法是( )。
#include <iostream>
#include <cmath>
using namespace std;
bool isPrimeA(int N) {
if (N < 2)
return false;
for (int i = 2; i < N; i++)
if (N % i == 0)
return false;
return true;
}
bool isPrimeB(int N) {
if (N < 2)
return false;
int endNum = int(sqrt(N));
for (int i = 2; i <= endNum; i++)
if (N % i == 0)
return false;
return true;
}
int main() {
cout << boolalpha;
cout << isPrimeA(13) << " " << isPrimeB(13) << endl;
return 0;
}
- A.
isPrimeA()的最坏时间复杂度是 ,isPrimeB()的最坏时间复杂度是 ,isPrimeB()优于isPrimeA()。 - B.
isPrimeA()的最坏时间复杂度是 ,isPrimeB()的最坏时间复杂度是 ,isPrimeB()优于isPrimeA()。 - C.
isPrimeA()的最坏时间复杂度是 ,isPrimeB()的最坏时间复杂度是 ,isPrimeA()优于isPrimeB()。 - D.
isPrimeA()的最坏时间复杂度是 ,isPrimeB()的最坏时间复杂度是 ,isPrimeA()优于isPrimeB()。