用倍加标记2---n-1中所有的合数,剩下的都是素数,结果减3(除去2,3,5)
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 给定一个数字n,返回[7,n)内有多少素数。 * @param n int整型 代表题目中的n * @return int整型 */ int solve(int n) { // write code here vector<bool> flag(n); int count=0; for(int i=2;i<n;i++){ if(!flag[i-1]){ count++; for(int j=i*i;j<n;j+=i){ flag[j-1]=true;//标记合数 } } } return count-3; } };