素数的个数

来源:互联网 发布:使徒行者2 知乎 编辑:程序博客网 时间:2024/05/22 13:15

题目描述

求指定区间内素数的个数

输入

多组输入,每行两个整数l,r 0<=l, r <=1000000

输出

一个整数,为区间[l, r)素数的个数,占一行

样例输入

1 32 6

样例输出

13

#include <iostream>#include <cmath>#include <cstring>using namespace std;#define MAX 1000001 bool p[MAX]; int l,r;void Prime(){memset(p,0,sizeof(p)); int la=sqrt(double(MAX));  p[0]=p[1]=1; for (int i=2;i<=la;i++){ if (!p[i]){ for (int j=2;j<MAX;j++) {  int r=i*j;  if (r>=MAX) break; if (!p[r]) p[r]=!p[r];   }}}}int main(){ Prime(); while (cin>>l>>r) { int sum=0;  for (int i=l;i<r;i++){ if (!p[i])  sum++; }cout<<sum<<endl; }return 0; }


0 0
原创粉丝点击