//高效实现素数的判断
#include<iostream>
#include<vector>
using namespace std;
int IsPrime(vector<int>&nums){
vector<bool> prime(nums.size(), true);
int len = nums.size();
for (int i = 2; i * i < len;i++){
for (int j = i * i; j < len;j+=i){
if(prime[i])
prime[j] = false;
}
}
int count = 0;
for (int i = 0; i < len;i++){
if(prime[i]){
count++;
}
}
return count;
}
int main(){
int num;
cout << "请输入需要判断区间的长度" << endl;
cin >> num;
vector<int> ivec;
for (int i = 0; i < num;i++){
ivec.push_back(i);
}
int count = IsPrime(ivec);
cout << "在0-" << num << "的区间中一共有" << count << "个素数" << endl;
return 0;
}