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;
    }
    
    
  • 相关阅读:
    css 自动调整不同 大小的图片变成一定大小
    myeclipse 修改html 报错
    js 中json的使用
    对比两个文件相似度 余弦算法
    andriod 解包
    http post/get 请求
    VXLAN 静态隧道实现同网段通信
    网络设备巡检命令
    IPv6
    Cisco ASA 调整terminal屏幕
  • 原文地址:https://www.cnblogs.com/Code-Geass/p/9931641.html
Copyright © 2011-2022 走看看