算法基础之筛质数

news2024/12/23 18:22:48

筛质数

  • 核心思想:筛法求质数

埃氏筛法:

  • 每次用 2 3 4…. p-1 筛 2 - p之间的数
  • 出现2 3 4 …的倍数时 去掉(4实际已经被去掉 不会用4去筛)
  • 当2~p-1的数都没有筛掉p 说明p是质数
    • 优化: 只用2~p-1中质数筛

线性筛法:

  • 核心: n只会被其最小质因子筛掉

    • 在这里插入图片描述

    • 每一个合数都只会被筛一次,因为每个合数的最小质因数都是唯一的

    •   #include<iostream>
        #include <algorithm>
        
        using namespace std;
        const int N = 1000010;
        
        int prime[N],cnt;
        bool st[N];
        
        void get_prime(int n)
        {
            for(int i = 2;i<=n;i++)
            {
                if(!st[i]) prime[cnt++] = i;  //如果没被筛掉 记录成质数
                for(int j = 0;prime[j] <= n/i ; j ++)  //从小到大遍历所有质数
                {
                    st[prime[j] * i] = true;  //将prime[j]的倍数筛掉
                    if(i % prime[j] == 0) break;  //如果i % prime[j] == 0 说明i是prime[j]的倍数
                    							  //那么当prime[j+1]的时候 prime[j+1]*i的最小质因数是prime[j] 而不是prime[j+1]
                }
            }
        }
        
        int main()
        {
            int n;
            cin>>n;
            
            get_prime(n);
            
            cout<<cnt;
        }
      

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何使用AI智能写作API接口批量处理数据

有大量的数据&#xff0c;想使用AI智能写作工具进行批量操作处理&#xff0c;有没什么好方法&#xff1f; 可以使用简数采集器&#xff0c;支持自动采集数据&#xff0c;也支持批量导入数据&#xff0c;然后调用第三方AI智能写作API接口进行批量处理&#xff08;例如&#xff…

『 C++ 』二叉树进阶OJ题

文章目录 根据二叉树创建字符串 &#x1f996;&#x1f969; 题目描述&#x1f969; 解题思路&#x1f969; 代码 二叉树的层序遍历(分层遍历) &#x1f996;&#x1f969; 题目描述&#x1f969; 解题思路&#x1f969; 代码 二叉树的层序遍历(分层遍历)Ⅱ &#x1f996;&…

redis集群介绍

这里写自定义目录标题 redis集群是什么&#xff1f;redis集群方案1.节点2.槽指派3在集群中执行命令4.复制与故障转移5.消息 redis集群搭建参考文档 redis集群是什么&#xff1f; redis集群是一个由多个主从节点群组成的分布式服务集群&#xff0c;它具有复制、高可用和分片特性…

无锡算法大赛线下颁奖会,齐聚院士专家探讨前沿AI技术,大赛选手优秀获奖方案分享!

极市邀您参与“视界拓新知Al有所为 2023首届无锡国际人工智能算法大赛”&#xff0c;相聚美丽无锡&#xff01; 举行地点&#xff1a;无锡君来洲际酒店君来厅 举行时间&#xff1a;2023年12月27日&#xff08;周三&#xff09; 此次大会齐聚多名院士专家&#xff0c;分享前沿…

Linux/Windows IP | Team基础管理

引言 IP&#xff08;Internet Protocol&#xff09; 定义&#xff1a; IP&#xff08;Internet Protocol&#xff09;是网络传输数据的协议&#xff0c;负责在网络中唯一标识和定位设备&#xff0c;并提供数据传输的基础。功能&#xff1a; 允许计算机在网络上相互通信和交换…

做一个家政预约小程序需要了解哪些功能?

随着科技的发展&#xff0c;人们的生活方式发生改变&#xff0c;家政服务在快节奏的时代成为家庭必备。为了满足人们对家政服务的需求&#xff0c;许多家政公司开始寻求线上发展机会。小程序作为轻量级应用&#xff0c;逐渐成为家政行业的重要载体。本文将详细介绍家政小程序的…

【数据结构和算法】---二叉树(1)--树概念及结构

目录 一、树的概念及结构1.1 树的概念1.2 树的相关概念1.3 树的表示1.4 树在实际中的运用 二、二叉树的概念及结构2.1 二叉树概念2.2 特殊的二叉树2.3 二叉树的性质2.4 二叉树的存储结构 三、树概念相关题目 一、树的概念及结构 1.1 树的概念 树是一种非线性的数据结构&#…

Python爬虫之两种urlencode编码发起post请求方式

背景 闲来无事想爬一下牛客网的校招薪资水平及城市分布&#xff0c;最后想做一个薪资水平分布的图表出来 于是发现牛客使用的是application/x-www-form-urlencoded的格式 测试 首先可以先用apipost等测试工具先测试一下是否需要cookie之类的&#xff0c;发现是不需要的&…

第五节TypeScript 运算符

一、描述 运算符用于执行程序代码运算。 二、运算符主要包括&#xff1a; 算术运算符逻辑运算符关系运算符按位运算符赋值运算符三元/条件运算符字符串运算符类型运算符 1、算术运算符 y5&#xff0c;对下面算术运算符进行解释&#xff1a; 运算符 描述 例子 x 运算结果…

Elasticsearch:什么是文本分类?

文本分类定义 - text classification 文本分类是一种机器学习&#xff0c;它将文本文档或句子分类为预定义的类或类别。 它分析文本的内容和含义&#xff0c;然后使用文本标签为其分配最合适的标签。 文本分类的实际应用包括情绪分析&#xff08;确定评论中的正面或负面情绪&…

10 个顶级免费 Android 数据恢复软件可帮助恢复已删除的文件

不小心删除了手机上的一些重要数据或文件&#xff1f;这很不幸&#xff0c;但不要悲伤或放弃希望&#xff0c;因为仍有机会恢复它们。 10 个顶级免费 Android 数据恢复软件 虽然 Android 手机没有像 Windows 那样的回收站可以自动存储您删除的数据&#xff0c;但是有很多功能强…

v高速、低功耗数模转换器MS9708/MS9710/MS9714

产品简述 MS9708/MS9710/MS9714 是一个 8-Bit/10-Bit/14-Bit 高速、低功耗 D/A 转换器。当采样速率达到 125MSPS 时&#xff0c; MS9708/MS9710/MS9714 也能提供优越的 AC 和 DC 性能。 MS9708/MS9710/MS9714 的正常工作电压范围为 2.7V 到 5.5V &#xff0c;…

Python轴承故障诊断 (八)基于EMD-CNN-GRU并行模型的故障分类

目录 前言 1 经验模态分解EMD的Python示例 2 轴承故障数据的预处理 2.1 导入数据 2.2 制作数据集和对应标签 2.3 故障数据的EMD分解可视化 2.4 故障数据的EMD分解预处理 3 基于EMD-CNN-GRU并行模型的轴承故障诊断分类 3.1 训练数据、测试数据分组&#xff0c;数据分ba…

什么是“人机协同”机器学习?

“人机协同”&#xff08;HITL&#xff09;是人工智能的一个分支&#xff0c;它同时利用人类智能和机器智能来创建机器学习模型。在传统的“人机协同”方法中&#xff0c;人们会参与一个良性循环&#xff0c;在其中训练、调整和测试特定算法。通常&#xff0c;它的工作方式如下…

MySql数据库联合查询(MySql数据库学习——六)

本编博客总结了mysql数据库的联合查询&#xff0c;仅用于学习和总结。ฅ ˘ฅ 联合查询&#xff0c;简单的来讲就是多个表联合起来进行查询。 前提条件&#xff1a;这些一起查询的表之间是有关系的&#xff08;一对一、一对多&#xff09;&#xff0c;它们之间一定是有关联字…

【qt信号槽-5】信号槽相关注意事项记录

背景&#xff1a; 信号槽是qt很重要的概念&#xff0c;遇到问题帮助没少看。其中就有signals and slots这一章节&#xff0c;说得很到位。 概念琐碎&#xff0c;记录备忘。不对之处望指正。 【qt信号槽-1】槽函数重写问题&#xff0c;qt_metacall和qt_static_metacall-CSDN博…

【数据结构和算法】定长子串中元音的最大数目

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 方法一&#xff1a;滑动窗口 2.2 方法二&#xff1a;滑动窗口优化版 三、代码 3.1 方法一&#xf…

使用Docker部署Nexus Maven私有仓库并结合Cpolar实现远程访问

文章目录 1. Docker安装Nexus2. 本地访问Nexus3. Linux安装Cpolar4. 配置Nexus界面公网地址5. 远程访问 Nexus界面6. 固定Nexus公网地址7. 固定地址访问Nexus Nexus是一个仓库管理工具&#xff0c;用于管理和组织软件构建过程中的依赖项和构件。它与Maven密切相关&#xff0c;可…

CQ 社区版 V2.7.0 发布 | 数据源版本扩充、新增批量执行功能等

2023 年的最后一个社区版本来啦&#xff01;提前祝大家新年快乐~ ✿✿ヽ(▽)ノ✿ 应社区小伙伴的建议&#xff0c;本次版本增加了大量已支持数据源的适配版本&#xff01;&#xff01;&#xff01;&#xff08;是听劝的官方没错&#xff09;同时&#xff0c;新增批量执行、Blo…

4.4 友元

4.4 友元 在程序里&#xff0c;有些私有属性 也想让类外特殊的一些函数或者类进行访问&#xff0c;就需要用到友元的技术 友元的目的是让一个函数或者类 访问另一个类中的私有成员 友元的关键字为 friend 友元的三种使用场景 全局函数做友元类做友元成员函数做友元 4.4.1…