zoukankan      html  css  js  c++  java
  • 【模板】线性筛(洛谷P3383)

    Description

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

    Input

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

    Output

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

    Solution

    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    int n,m,x,cnt,prime[5000010];
    bool isprime[10000010];
    inline int read()
    {
    	int ans=0;
    	char ch=getchar();
    	while (ch<'0' || ch>'9') ch=getchar();
    	while (ch>='0' && ch<='9')
    	{
    		ans=ans*10+ch-'0';
    		ch=getchar();
    	}
    	return ans;
    }
    void getprime()
    {
    	isprime[1]=1;
    	for (int i=2;i<=n;i++)
    	{
    		if (!isprime[i]) prime[++cnt]=i;
    		for (int j=1;j<=cnt && i*prime[j]<=n;j++)
    		{
    			isprime[i*prime[j]]=1;
    			if (i%prime[j]==0) break;
    		}
    	}
    }
    int main()
    {
    	n=read(),m=read();
    	getprime();
    	while (m--)
    	{
    		x=read();
    		if (isprime[x]) printf("No
    "); else printf("Yes
    ");
    	}
    	return 0;
    }
    
    
  • 相关阅读:
    Sencha Touch 使用笔记
    区数据
    省市 数据
    js校验身份证
    js 邮政编码验证
    原生js添加class
    让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法
    js学习笔记 Function类型属性的理解
    js学习笔记 理解原型对象
    js学习笔记 chapter5 引用类型
  • 原文地址:https://www.cnblogs.com/Code-Geass/p/9931641.html
Copyright © 2011-2022 走看看