P5736 【深基7.例2】质数筛题解

题目

输入n个不大于105的正整数。要求全部储存在数组中,去除掉不是质数的数字,依次输出剩余的质数。

输入输出格式

输入格式

第一行输入一个正整数n,表示整数个数。

第二行输入n个正整数a_{i},以空格隔开。

输出格式

输出一行,依次输出a_{i}中剩余的质数,以空格隔开。

输入输出样例

输入样例

5
3 4 5 6 7

输出样例

3 5 7

代码

(1)开根

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
bool isprime(int x){//判断是否素数if(x<=1) return false;//如果小于2,一定不是素数for(int i=2;i<=sqrt(x);i++){if(x%i==0) return false;//如果可以整除,那么不是素数}return true;//是素数
}
int main(){int n,a;cin>>n;for(int i=1;i<=n;i++){cin>>a;if(isprime(a)){cout<<a<<" ";//是素数,就输出}}return 0;
} 

(2)欧式筛法(素数乘合数为合数)

#include <bits/stdc++.h>
using namespace std;
long long n,m;
bool vis[10000001]={1,1};//0,1均既不是素数,也不是合数,所以先标记为不是
int Prime[10000001],k;
void prime(long long n)
{for(int i=2;i<=n;i++)//最小的素数是2{if(!vis[i]){Prime[++k]=i;//如果是素数就标记一下}for(int j=1;j<=k;j++)//j小于当前所有的素数的个数{if(Prime[j]*i>n){break;}vis[Prime[j]*i]=true;//用素数依次×i,结果标记为合数if(i%Prime[j]==0){break;}}}//欧拉筛法,就是拿当前的数×之前的筛出来的素数,这个数即为合数
}
int main()
{cin>>n;prime(100001);//在10的5次方范围内筛素数for(int i=1;i<=n;i++){int t;cin>>t;if(!vis[t])//上面标记过了,这时输入后直接判断就行了{cout<<t<<" ";}}return 0;
} 

(3)埃氏筛法(素数的整数倍均为合数)

#include <bits/stdc++.h>
using namespace std;
bool vis[100001]={1,1};//0,1标为不是
int n;
void Era(int qwq)
{for(int i=2;i<=qwq;i++){if(vis[i]){continue;}//是合数就不执行for(int j=i*2;j<=qwq;j+=i)//从i×2开始筛,因为经过判断后i为素数{vis[j]=true;//j=i的倍数,每次加i,即为i的倍数每次加1,p数组的第j个元素标为合数}}
}
int main()
{cin>>n;int tmp;Era(100001);for(int i=1;i<=n;i++){scanf("%d",&tmp);if(!vis[tmp])//已经记下了,判断一下即可{cout<<tmp<<" ";}//真就不是,假就是}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/343130.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jenkins基础篇--添加节点

节点介绍 Jenkins 拥有分布式构建(在 Jenkins 的配置中叫做节点)&#xff0c;分布式构建能够让同一套代码在不同的环境(如&#xff1a;Windows 和 Linux 系统)中编译、测试等。 Jenkins 运行的主机在逻辑上是 master 节点&#xff0c;下图是主节点和从节点的关系。 添加节点 …

AMEYA360:广和通RedCap模组FG131FG132系列

2024年1月&#xff0c;广和通RedCap模组FG131&FG132系列已进入工程送样阶段&#xff0c;可为终端客户提供样片。广和通RedCap模组系列满足不同终端对5G速率、功耗、尺寸、成本的需求&#xff0c;全面助力RedCap技术的行业应用。 FG131&FG132系列基于骁龙X35 5G调制解调…

C#~Winform取消窗体最大化最小化按钮

目录 取消最大化-false取消最小化-false效果 取消最大化-false 取消最小化-false 效果

对比学习2024最新SOTA&应用方案分享,附14篇必读论文和代码

同学们发现没有&#xff0c;对比学习在我们的日常工作生活中已经很常见了&#xff0c;比如推荐系统任务&#xff0c;为用户推荐相似的商品或预测用户的购买行为&#xff1b;又比如图像检索&#xff0c;为用户找相似图片或识别不同物体。另外还有语音识别、人脸识别、NLP&#x…

AI智能分析网关V4烟火检测算法解决方案

一、背景需求 根据国家消防救援局公布的数据显示&#xff0c;2023年共接报处置各类警情213.8万起&#xff0c;督促整改风险隐患397万处。火灾危害巨大&#xff0c;必须引起重视。传统靠人工报警的方法存在人员管理难、场地数量多且分散等问题&#xff0c;无法有效发现险情降低…

数据结构初阶之插入排序与希尔排序详解

个人主页&#xff1a;点我进入主页 专栏分类&#xff1a;C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶 C语言刷题 数据结构初阶 Linux 欢迎大家点赞&#xff0c;评论&#xff0c;收藏。 一起努力,共赴大厂。 目录 一.前言 二.插入排序 …

恼人的“龙天“(䶮)--谈谈从GBK转到GB18030的特殊情况

背景 最近在做一个去O迁移适配&#xff0c;刚好也有友商在一起做&#xff0c;两边测试方式不一样。友商先遇到了一个问题&#xff0c;就是在ORACLE中某个的2字节GBK字符到迁移到友商的库中变成了4字节&#xff0c;刚好那个字段在这个字是2字节的时候&#xff0c;已经存满了&am…

【Python】使用tkinter设计开发Windows桌面程序记事本(4)

上一篇&#xff1a;【Python】使用tkinter设计开发Windows桌面程序记事本&#xff08;3&#xff09;-CSDN博客 下一篇&#xff1a; 作者发炎 衔接上一篇文章&#xff0c;本文章完成了"页面设置"子窗口的部分功能&#xff0c;并且点击"确定"按钮后会把当前…

使用U盘作为系统的启动盘

1.我们使用到的工具ventoy-1.0.96.rar 下载资源 https://download.csdn.net/download/u011442726/88735129 2.怎么使用 ventoy软件的使用非常简单&#xff0c;直接解压后&#xff0c;把u盘插到电脑&#xff0c;然后点击exe这个文件即可。 然后点击之后&#xff0c;直接点击安…

人工智能任务4-读懂YOLOv5模型的几个灵魂拷问问题,深度理解 YOLOv5模型架构

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能任务4-读懂YOLOv5模型的几个灵魂拷问问题&#xff0c;深度理解 YOLOv5模型架构。YOLOv5是一种高效且精确的目标检测模型&#xff0c;由ultralytics团队开发。它采用了轻量级的网络结构&#xff0c;能够在保…

HDFS概述

文章目录 HDFS背景定义HDFS 优缺点HDFS 组成HDFS文件块大小 HDFS背景定义 背景 先给大家介绍一下什么叫HDFS&#xff0c;我们生活在信息爆炸的时代&#xff0c;随着数据量越来越大&#xff0c;在一个操作系统存不下所有的数据&#xff0c;那么就分配到更多的操作系统管理的磁…

武汉灰京文化:手游市场正呈现出多元化的发展趋势

移动游戏作为近年来全球范围内备受关注的领域之一&#xff0c;其崛起之迅速令人瞩目。尤其值得注意的是&#xff0c;新兴的细分玩法以及类型多样的游戏产品的出现&#xff0c;已经彻底改变了人们对于移动游戏的认知。在高速增长的移动互联网浪潮推动下&#xff0c;多样化游戏产…