洛谷3383 线性筛素数

    xiaoxiao2021-12-04  15

    题目描述

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

    第一行包含两个正整数N、M,分别表示查询的范围和查询的个数。

    接下来M行每行包含一个不小于1且不大于N的整数,即询问概数是否为质数。

    输出格式:

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

    线性筛素数模板题。

    #include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define LL long long bool have[10000010]; int prm[1000010],n,m; int main() { int i,j,k,p,q,x,y,z,tot=0; scanf("%d%d",&n,&m); for (i=2;i<=n;i++) { if (!have[i]) prm[++tot]=i; for (j=1;j<=tot&&(LL)i*prm[j]<=n;j++) { have[i*prm[j]]=1; if (i%prm[j]==0) break; } } have[1]=1; while (m--) { scanf("%d",&x); if (have[x]) printf("No\n"); else printf("Yes\n"); } }
    转载请注明原文地址: https://ju.6miu.com/read-680394.html

    最新回复(0)