[洛谷P3383]线性筛素数-欧拉筛法

Posted nishikino-curtis

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[洛谷P3383]线性筛素数-欧拉筛法相关的知识,希望对你有一定的参考价值。

Description

  • 如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内)

Input&Output

Input

  • 第一行包含两个正整数N、M,分别表示查询的范围和查询的个数。
  • 接下来M行每行包含一个不小于1且不大于N的整数,即询问该数是否为质数。

    Output

  • 输出包含M行,每行为Yes或No,即依次为每一个询问的结果。

Solution

  • 代码如下:

    #include<iostream>
    #include<cstring>
    using namespace std;
    int num[100000];
    long long prime[5000001];
    bool is_prime[10000001];
    int N,M;
    int cnt=1;
    int main()
    {
    for(int k=0;k<10000001;k++)
    {
        is_prime[k]=true;
    }
    cin>>N>>M;
    is_prime[0]=false;
    is_prime[1]=false;
    is_prime[2]=true;
    prime[1]=2;
    for(int i=2;i<N;i++)
    {
       if(is_prime[i]==true){prime[cnt]=i;cnt++;} 
       for(long long j=1;j<=cnt&&prime[j]*i<=N;j++)
       {
           is_prime[prime[j]*i]=false;
           if(i%prime[j]==0)break;
       }
    }
    for(int i=0;i<M;i++)
    {
        cin>>num[i];
        if(is_prime[num[i]]==false)cout<<"No"<<endl;
        else cout<<"Yes"<<endl;
    }
    return 0;
    }

以上是关于[洛谷P3383]线性筛素数-欧拉筛法的主要内容,如果未能解决你的问题,请参考以下文章

洛谷 P3383 模板线性筛素数

洛谷 P3383 模板线性筛素数

P3383 模板线性筛素数 洛谷

洛谷 P3383 模板线性筛素数

洛谷 P3383 模板线性筛素数

洛谷 P3383 模板线性筛素数