以下函数的时间复杂度是多少?
what is the Time Complextity of a below function?
#include <iostream>
using namespace std;
bool isPrime(int n){
if(n == 1 || n == -1)
return false
else if (n ==2 || n == 3)
return true;
else if((n+1)%6 == 0 || (n-1)%6 == 0)
return true;
return false;
}
int main()
{
int n{0};
cin >> n;
cout << isPrime(n) << endl;
return 0;
}
isPrime() 函数的时间复杂度是多少?检查数字是否为素数是否正确?
它只做了少量的可除性检查,没有循环或递归,因此它只是 O(1),不是正确的素数检查。
第三项检查意义不大。如果一个数与 6 的倍数相差 1,为什么它是质数?我的意思是它恰好适用于 5 和 7,适用于 11 和 13,适用于 17 和 19,但不适用于 25。25 与 24 差一但不是质数。这就像将 π 计算为 22/7 — 这是一个不错的一阶近似值,但显然不是正确的公式。
#include <iostream>
using namespace std;
bool isPrime(int n){
if(n == 1 || n == -1)
return false
else if (n ==2 || n == 3)
return true;
else if((n+1)%6 == 0 || (n-1)%6 == 0)
return true;
return false;
}
int main()
{
int n{0};
cin >> n;
cout << isPrime(n) << endl;
return 0;
}
isPrime() 函数的时间复杂度是多少?检查数字是否为素数是否正确?
它只做了少量的可除性检查,没有循环或递归,因此它只是 O(1),不是正确的素数检查。
第三项检查意义不大。如果一个数与 6 的倍数相差 1,为什么它是质数?我的意思是它恰好适用于 5 和 7,适用于 11 和 13,适用于 17 和 19,但不适用于 25。25 与 24 差一但不是质数。这就像将 π 计算为 22/7 — 这是一个不错的一阶近似值,但显然不是正确的公式。