计算[A,B](区间包括A和B,2<=A<=B<=18000000)之间,一共有多少素数?
一行两个数A和B
一个数,表示素数的个数
3 10
3
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; }
原文:http://www.cnblogs.com/jyhywh/p/6057352.html