1439 筛法统计素数个数

Posted ioioioioioio

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
}

 

以上是关于1439 筛法统计素数个数的主要内容,如果未能解决你的问题,请参考以下文章

欧拉筛法求素数

素数筛法

素数筛法讲解

筛法--求1到100的所有素数

HDU 6069 Counting Divisors(区间素数筛法)

埃氏筛法(求n以内有多少个素数)