应该说这是比较高效的解题方法了吧。

素数个数计数:

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;}