首页 > 其他分享 >素数入门笔记

素数入门笔记

时间:2025-01-04 17:22:55浏览次数:1  
标签:入门 标记 合数 枚举 笔记 素数 复杂度 质数 log

试除法

从 \(2\) 枚举到 \(\lfloor\sqrt n\rfloor\) 判断能否整除。

朴素筛法

从小到大枚举每个数,将范围内它的倍数全部标记为合数。

时间复杂度显然就是调和级数 \(O(n\log n)\)。

埃氏筛

观察到一个合数必定可以通过某个质数乘上某个数得到。

从小到大枚举每个质数,将范围内它的倍数全部标记为合数。

有一个小优化,对于 \(p\) 这个质数,枚举 \(i\) 筛掉 \(p\times i\) 时我们强制钦定 \(p\leq i\),因为 \(p>i\) 的情况肯定在 \(i\) 中至少一个质因子那里筛过了。

时间复杂度 \(O(n\log\log n)\),证明不在考察范围内。

欧拉筛

发现埃氏筛中的小优化只是去除了一部分重复的情况,我们希望一个合数只在它最小的质因数那里被筛一次。

先枚举 \(p\) 再标记不好处理,不妨先枚举 \(i\),再去考虑哪些 \(p\) 是无用的。

发现如果 \(p\times i\) 被一个比 \(p\) 更小的质数 \(q\) 筛去了,那么其实就是 \(q|i\)。

所以在枚举 \(p\) 的过程中,一旦发现 \(p|i\) 直接退出即可,\(i\) 乘更大质数的合数肯定会被 \(p\) 筛掉。

时间复杂度 \(O(n)\)。

标签:入门,标记,合数,枚举,笔记,素数,复杂度,质数,log
From: https://www.cnblogs.com/aimoai/p/18652129

相关文章

  • 程序员如何自己赚钱?零基础入门到精通,收藏这篇就够了
    看了很多案例,独立开发者有哪些赚钱的路子呢?第一种是开发和销售软件产品,开发软件,网站,APP,小程序,卖授权服务赚钱,独立开发者可以创建软件或应用程序,并通过各种平台销售。例如:开发移动应用程序,通过应用商店(如AppStore或GooglePlay)出售,或通过应用内广告和订阅模式盈利。桌面......
  • PCS7 笔记
    400H和410H400H系统属于老版本CPU,在售的越来愈少。410H作为400H的替代和更新产品出现。冗余机制同步周期同步事件同步:在西门子400H/410Hcpu中,两个CPU内部的数据,必须保持高度统一,属于西门子冗余PLC的专利,西门子冗余均为事件同步。在西门子400H/410H冗余PLC中,不推荐......
  • 全国职业院校技能大赛-大数据应用赛项-离线数据处理-备赛笔记04-2024省赛离线数据处理
    数据抽取:1、抽取ds_db01库中customer_inf的增量数据进入Hive的ods库中表customer_inf。根据ods.user_info表中modified_time作为增量字段,只将新增的数据抽入,字段名称、类型不变,同时添加静态分区,分区字段为etl_date,类型为String,且值为当前日期的前一天日期(分区字段格式为yyyy......
  • 《计算机组成及汇编语言原理》阅读笔记:p200-p240
    《计算机组成及汇编语言原理》学习第15天,p200-p240总结,总计40页。一、技术总结1.derivedtype(1)定义Arepresentationfordatabuiltupbycombiningbasictypes.Forexample,afractiontypecouldbederivedfromtwointegers,thenumeratorandthedenomi......
  • Redis数据库笔记——内存分配器
    大家好,这里是GoodNote,关注公主号:Goodnote,专栏文章私信限时Free。本文详细介绍Redis数据库的内存分配器,这是redis为什么这么快的原因,以及其作为内存数据库的内存管理策略。文章目录Redis的内存分配器内存分配器的作用Redis支持的内存分配器jemalloclibcmalloctc......
  • 合成器入门教程目录
    合成器入门教程目录内容在b站音乐轨柴第二集常用合成器及其特色硬件合成器特点实体旋钮和推子:提供直观的操作体验,便于实时调整音色.例如,通过旋转振荡器的频率旋钮,可以改变音色的基频[5];通过推动滤波器的截止频率推子,可以改变音色的亮度[6].直观的操作感:用户可以直观地感......
  • Java学习笔记07-加油站支付小模块
    需求:某加油站为了吸引更多的车主,推出如下活动,车主可以办理金卡或银卡。卡片信息包括:车牌号码、车主姓名、电话号码、卡片余额。金卡办理时入存金额必须>=5000元,银卡办理时入存金额必须>=2000元,金卡支付时享受8折优惠,银卡支付时享受9折优惠,金卡消费满200元可以提供打印免费洗......
  • c++第14课(入门结束)
    1.打擂台新年第二篇!!!打擂台,就是比大小,如:a=0   //你输入了4   4     a=4转化成如下代码:inta=0,b;cin>>b;a=b;cout<<a;但,如是100个呢?那就得用for循环#include<bits/stdc++.h>usingnamespacestd;inta[1000];intmain(){intmax=0;/......
  • ECharts数据可视化:入门、实战与进阶PDF、EPUB免费下载
    适读人群:数据分析师等所有需要制作可视化报表的人员。ECharts官方推荐,系统全面、由浅入深、注重实操,带领读者快速从新人到高手电子版仅供预览,下载后24小时内务必删除,支持正版,喜欢的请购买正版书籍点击原文去下载书籍信息作者:王大伟出版社:机械工业出版社副标题:入......
  • 统计素数并求和(PTA)C语言
    本题要求统计给定整数M和N区间内素数的个数并对它们求和。输入格式:输入在一行中给出两个正整数M和N(1≤M≤N≤500)。输出格式:在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。输入样例:1031输出样例:7143代码:#include<stdio.h>intmain(){......