codevs 2945 计算素数
Posted 惑&葬
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了codevs 2945 计算素数相关的知识,希望对你有一定的参考价值。
题目描述 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; }
以上是关于codevs 2945 计算素数的主要内容,如果未能解决你的问题,请参考以下文章