思路:

如果我们要筛出 [1, n] 内的所有素数,使用 [1, √n] 内的素数去筛就可以了

设bool型数组 a,a[i] 表示 i 是否被某个素数筛过

从 2 开始枚举每个数 i:

若 a[i] = false,表示 i 没有更小的素因子,从而知道 i 是素数。枚举 i 的所有倍数 j,令 a[j] = 1

这样就可以在线性复杂度内预处理出比较大的区间的素数

代码如下:

#include<cstdio>
#include<iostream>
using namespace std; int n,m;
bool a[]; int main()
{
scanf("%d%d",&n,&m);
a[]=;
for(int i=;i*i<=n;++i)
{
if(a[i])continue;
for(int j=i;i*j<=n;++j)
a[i*j]=;
}
int j;
for(int i=;i<=m;++i)
{
scanf("%d",&j);
if(a[j])printf("No\n");
else printf("Yes\n");
}
}

然后附上线性筛【毕竟是线性复杂度2333】

代码

#include<cstdio>
#include<iostream>
using namespace std; int n,m,num,su[];
bool a[]; int main()
{
scanf("%d%d",&n,&m);
a[]=;
for(int i=;i<=n;++i)
{
if(!a[i])su[++num]=i;
for(int j=;j<=num&&i*su[j]<=n;++j)
{
a[i*su[j]]=;
if(i%su[j]==)break;
} }
int j;
for(int i=;i<=m;++i)
{
scanf("%d",&j);
if(a[j])printf("No\n");
else printf("Yes\n");
}
}

【埃氏筛】洛谷P3383埃氏筛模板的更多相关文章

  1. 埃氏筛优化(速度堪比欧拉筛) + 洛谷 P3383 线性筛素数 题解

    我们一般写的埃氏筛消耗的时间都是欧拉筛的三倍,但是欧拉筛并不好想(对于我这种蒟蒻) 虽然 -- 我 -- 也可以背过模板,但是写个不会的欧拉筛不如写个简单易懂的埃氏筛 于是就有了优化 这个优化还是比较 ...

  2. 洛谷 P3795 钟氏映射

    洛谷 P3795 钟氏映射 题目背景 2233年,CSSYZ学校的数学老师兼数学竞赛顾问钟JG已经2200+岁啦! 为了庆生,他或她给广大人民群众出了道题. 题目描述 设集合N=M={x∣x∈N+​, ...

  3. 洛谷 P4148 简单题 KD-Tree 模板题

    Code: //洛谷 P4148 简单题 KD-Tree 模板题 #include <cstdio> #include <algorithm> #include <cst ...

  4. 线性筛素数和理解 洛谷P3383

    题目链接:https://www.luogu.org/problemnew/show/P3383 线性筛法筛素数的特点是每一个数字只被遍历一次,即时间复杂度为O(n),所以说他是线性的,并且所有的非素 ...

  5. 洛谷4525 & 4526:【模板】自适应辛普森法——题解

    参考:https://phqghume.github.io/2018/05/19/%E8%87%AA%E9%80%82%E5%BA%94%E8%BE%9B%E6%99%AE%E6%A3%AE%E6%B ...

  6. 洛谷 P3380 bzoj3196 Tyvj1730 【模板】二逼平衡树(树套树)

    [模板]二逼平衡树(树套树) 题目描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作: 查询k在区间内的排名 查询区间内排名为k的值 修改某一位值上的数值 查询k在 ...

  7. 洛谷 P3367 并查集模板

    #include<cstdio> using namespace std; int n,m,p; ]; int find(int x) { if(father[x]!=x) father[ ...

  8. [洛谷P3391] 文艺平衡树 (Splay模板)

    初识splay 学splay有一段时间了,一直没写...... 本题是splay模板题,维护一个1~n的序列,支持区间翻转(比如1 2 3 4 5 6变成1 2 3 6 5 4),最后输出结果序列. ...

  9. 欧拉筛(线性筛) & 洛谷 P3383 【模板】线性筛素数

    嗯.... 埃氏筛和欧拉筛的思想都是相似的: 如果一个数是素数,那么它的所有倍数都不是素数.... 这里主要介绍一下欧拉筛的思路:(欧拉筛的复杂度大约在O(n)左右... 定义一个prime数组,这个 ...

随机推荐

  1. JQuery学习(4-2-phpserver端1)

    主要内容:介绍图片的上传过程,涉及PHP跟JQuery: 1. 读取配置文件,连接MySQL数据库. 配置文件主要实username和password. 3-5.php <?php /* * v ...

  2. lufylegend练习(1)帧速率

    近期发现一个HTML开源游戏引擎,感觉还不错http://lufylegend.com/ 可是没有基础的同学.看起来费劲.所以打算边学边记笔记,说明都在凝视中 <!DOCTYPE html> ...

  3. HBase1.0.1基本操作(java代码)

    public class HQuery { private static ConnHBase connHbase=new ConnHBase(); /***************建表******** ...

  4. Intellij IDEA安装golang插件

    原文作者:Jianan - qinxiandiqi@foxmail.com 原文地址:http://blog.csdn.net/qinxiandiqi/article/details/50319953 ...

  5. AOP入门(转)

    本文转自http://www.cnblogs.com/yanbincn/archive/2012/06/01/2530377.html Aspect Oriented Programming  面向切 ...

  6. 自学Python3.1-函数基础

    一.函数概述 1. 简介 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率. 2. 组成 函数代码块以 def 关键词开头,后接函数名和圆括 ...

  7. myeclipse 2014 Customize Perspective 失效

    1.将9个jar复制到myeclipse安装目录\plugins中 2.删除和这9个jar同包名但是版本号较低的9个文件 3.重启myeclipse 2014 注:这9个 jar 包 自己到网上搜索, ...

  8. [.Net跨平台]部署DTCMS到Jexus遇到的问题及解决思路---Linux环境搭建

    最近朋友托我帮忙研究如何把一个DTCMS部署到Linux下,经过1天的研究,部署基本成功,可能有些细节还未注意到,现在把心得分享一下.过程比预期的要简单 身为.Net程序员,这个问题的第一步可能就是如 ...

  9. InfluxDb中写入重复数据问题解决方案

    1.InfluxDb版本 0.10.3 2.Measurement TodayChargeTimeReport 只有time和Field列,没有Tag列 3.现象:通过定时任务向上面的表中写入数据: ...

  10. WindowsServer2012 搭建域错误“本地Administraor账户不需要密码”

    标签:MSSQL/SQLServer/域控制器提升的先决条件验证失败/密码不符合要求 概述 在安装WindowsServer2012域控出现administrator账户密码不符合要求的错误,但是实际 ...