题目描述 Description
计算[A,B](区间包括A和B,2<=A<=B<=18000000)之间,一共有多少素数?
输入描述 Input Description
一行两个数A和B
输出描述 Output Description
一个数,表示素数的个数
样例输入 Sample Input
3 10
样例输出 Sample Output
3
数据范围及提示 Data Size & Hint
2<=A<=B<=18000000
思路:
素数筛+枚举
代码:
#include<cstdio> using namespace std; int l,r,ans; bool a[18000001]; void shai() { for(int i=2;i<=18000000;i++) if(a[i]==0) for(int j=i*2;j<=18000000;j+=i) a[j]=1; } int main() { shai(); scanf("%d%d",&l,&r); for(int i=l;i<=r;i++) if(a[i]==0) ans++; printf("%d",ans); return 0; }