codevs 6116 区间素数
题目描述 Description
小明喜欢研究素数,他想统计两个自然数之间的素数个数,现在他给定一个区间,请你帮忙求出这个区间的素数个数。
输入描述 Input Description
两个数a和b,表示开区间[a,b]
输出描述 Output Description
输出一个数,表示区间素数的个数
样例输入 Sample Input
2 100
样例输出 Sample Output
25
数据范围及提示 Data Size & Hint
无
没讲清数据范围,被坑了一次。。
#include <cstdio> int n,m,num,ans,Prime[50000005]; bool isPrime[50000005]; int main() { scanf("%d%d",&n,&m); isPrime[0]=isPrime[1]=1; for(int i=2;i<=m;i++) { if(!isPrime[i]) Prime[num++]=i; for(int j=0;j<num&&i*Prime[j]<=m;j++) { isPrime[i*Prime[j]]=1; if(i%Prime[j]==0) break; } } for(int i=n;i<=m;i++) if(!isPrime[i]) ans++; printf("%d",ans); return 0; }
我们都在命运之湖上荡舟划桨,波浪起伏着而我们无法逃脱孤航。但是假使我们迷失了方向,波浪将指引我们穿越另一天的曙光。