应该说这是比较高效的解题方法了吧。
素数个数计数:
class Solution {public: int countPrimes(int n) { bool* a = new bool[n]; for(int i=2; i*i
素数的判断:
bool primenum(int m) { int t=sqrt(m); for(int i=2;i<=t;i++) { if(m%i==0) return false; } return true; }
素数的判断可以对照下面一个程序:
int IsPrime(int N){int i, j; if (N == 2) //按照国内标准,认为2是最小的素数 return true; else if (N < 2 || N % 2 ==0) //小于2或者大于2的偶数 不是素数 return false; else //大于2的奇数 { j = (int)sqrt(N + 1); //个人认为,此处的+1毫无用处,姑且这么写吧 for (i = 3; i <= j; i = i + 2) if (N % i == 0) return false; } return true;}