1439 筛法统计素数个数

1439 统计素数个数

 时间限制: 1 s
 空间限制: 1000 KB
 题目等级 : 青铜 Bronze
 
 
题目描述 Description

输入区间[L, R],寻找在此区间内的质数。

输入描述 Input Description

开区间[L, R]中的整数L,R

输出描述 Output Description

在此区间中所有质数的个数n

样例输入 Sample Input

0 100

样例输出 Sample Output

25

数据范围及提示 Data Size & Hint

对于所有数据,L,R<=21000, 区间长度R-L<=4000

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
const int N=21000;
int vis[N];
int main()
{
    int l,r;
    cin>>l>>r;
    vis[0]=1;
    vis[1]=1;
    for(int i=2;i<=sqrt(r)+1;i++)
     {
         if(vis[i]==0)
          {
              for(int j=i*2;j<=r;j+=i)
               {
                   vis[j]=1;
                } 
          }
     }
     int ans=0;
     for(int i=l;i<=r;i++)
      {
          if(vis[i]==0)
           {
               ans++;
           }
      }
      cout<<ans;
}

 

posted @ 2017-04-20 19:40  ioioioioioio  阅读(248)  评论(0编辑  收藏  举报