1439 筛法统计素数个数
题目描述 Description
输入区间[L, R],寻找在此区间内的质数。
输入描述 Input Description
开区间[L, R]中的整数L,R
输出描述 Output Description
在此区间中所有质数的个数n
样例输入 Sample Input
0 100
样例输出 Sample Output
25
数据范围及提示 Data Size & Hint
对于所有数据,L,R<=21000, 区间长度R-L<=4000
#include<iostream> #include<cstdio> #include<cmath> using namespace std; const int N=21000; int vis[N]; int main() { int l,r; cin>>l>>r; vis[0]=1; vis[1]=1; for(int i=2;i<=sqrt(r)+1;i++) { if(vis[i]==0) { for(int j=i*2;j<=r;j+=i) { vis[j]=1; } } } int ans=0; for(int i=l;i<=r;i++) { if(vis[i]==0) { ans++; } } cout<<ans; }