首页 > 其他分享 >素数重学笔记

素数重学笔记

时间:2023-09-22 23:55:07浏览次数:32  
标签:埃氏 log 合数 枚举 笔记 times 素数 质数

之前都没有怎么理解,现在来复习一下。

试除法

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

朴素筛法

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

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

埃氏筛

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

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

当然有一个小优化,对于 \(i\) 这个质数,枚举 \(j\) 筛掉 \(i\times j\) 的时候我们强制钦定 \(i\leq j\),如果 \(i>j\) 的话 \(i\times j\) 肯定在 \(j\) 中至少一个质因子那里筛过了。

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

欧拉筛

发现埃氏筛中的小优化没有优化彻底,一个合数仍然可能被筛多次。我们希望一个合数只在它最小的质因数那里被筛一次。

对于每个数 \(i\),尝试枚举小于等于 \(i\) 的每个质数 \(p\) 同时筛去 \(p\times i\)。一旦 \(p|i\) 就直接退出循环。

为什么这样是对的呢?我们发现如果 \(p\times i\) 被一个比 \(p\) 更小的质数 \(q\) 筛去了,那么 \(q|i\)。

而之前肯定已经枚举过了 \(q\),并跳出了循环,不可能做到 \(p\)。

于是这个东西就是线性的啦。

标签:埃氏,log,合数,枚举,笔记,times,素数,质数
From: https://www.cnblogs.com/landsol/p/17723716.html

相关文章

  • 【刷题笔记】59. Spiral Matrix II
    题目Givenapositiveinteger n,generateasquarematrixfilledwithelementsfrom1to n2 inspiralorder.Example:Input:3Output:[[1,2,3],[8,9,4],[7,6,5]]题目大意给定一个正整数n,生成一个包含1到n^2所有元素,且元素按顺时针顺序螺......
  • 后缀数组 SA 学习笔记 (一)
    好像有一些图片炸了,慢慢修后缀数组SA学习笔记(一)目录目录后缀数组SA学习笔记(一)目录计数排序CountingSortCode桶排序BucketSort基数排序RadixSortCodeid[]和rk[]后缀数组SuffixArray基础概念计算后缀数组讨论Code讨论KK3299.DescriptionSolutionCode计数排序......
  • C++笔记(细碎小知识点)1
    1.内联:写在类内或外部声明inline(编译器判断是否内联,不是满足上述条件就一定内联),优点更快2.protected:派生类可以直接调用基类的protected成员3.class类内默认private,struct内默认public4.构造函数最优写法,用初始化(只有构造函数有)效率比在函数中写更高(因编译器先进行初始化再执行......
  • Java笔记(细碎小知识点)1
    1.Dos命令:dir:打出当前目录结构;md:创建文件夹;cd+文件夹地址:跳转到当前目录下的对应文件夹;cd..:跳转到上一目录;rd+文件夹:删除文件夹中东西;del+文件(或“*.文件”类型这样的正则表达式):删除文件或这类文件;cd/:跳转到盘符;javac+文件名.java:编译java文件,生成class文件;java+文件名:运行jaca......
  • 《信息安全系统设计与实现》第三周学习笔记
    一、程序设计语言中的必备要素和技能一门程序设计语言中的必备要素和技能通常包括以下内容:语法:掌握语言的语法规则,包括关键字、标识符、表达式、语句和注释等。数据类型:例如整数、浮点数、字符串、布尔值等。变量和赋值:变量可以存储和操作数据。编写代码需要声明变量、给变......
  • 刷题笔记(2023.9.22)
    路灯2一眼区间\(dp\),定义一个三维数组\(f[i][j][0]\)表示\(i\simj\)区间中最后关第\(i\)盏灯。\(f[i][j][1]\)表示\(i\simj\)区间中最后关第\(j\)盏灯。然后可以退出状态转移方程为intA=f[i+1][j][0]+(p[i+1]-p[i])*(sum[n]-sum[j]+sum[i]);intB=f[i+1][j......
  • openGauss学习笔记-77 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT特性及
    openGauss学习笔记-77openGauss数据库管理-内存优化表MOT管理-内存表特性-MOT特性及价值本节介绍了openGauss内存优化表(Memory-OptimizedTable,MOT)的特性及价值。77MOT特性及价值MOT在高性能(查询和事务延迟)、高可扩展性(吞吐量和并发量)以及高资源利用率(某些程度上节约成本)方面......
  • 9.18动手动脑笔记整理
    64k的文件是什么概念呢?1行代码大概(平均)是30字节,64k的源代码是2184行如果代码风格好一点,再多一些空行的话,差不多也就是3000行上下Java程序中最基本的构造单元是类,而类中最重要的成员就是方法  类方法的编写:只需创造一个类,然后为其编写声明为public的函数即可 ......
  • 计算机组成原理笔记(1)
    教材:《计算机组成原理(第2版)》唐朔飞《计算机组织与设计:硬软件接口技术》A.PattersonJohn.L.Hennessy(以MIPS为实例)《数字设计和计算机体系结构》MorganKaufmann1.1计算机系统简介现代计算机的多态性:sensor,Info.appliance,laptop,PC,server,mainframe,HPC(高性......
  • 结构化剪枝 之 L1 剪卷积核 笔记
    论文:https://arxiv.org/pdf/1608.08710.pdf摘要CNN在各种应用中的成功伴随着计算和参数存储成本的显著增加。最近减少这些开销的努力包括在不损害原始精度的情况下修剪和压缩各个层的权重。然而,基于大小的权值修剪减少了完全连接层的大量参数,并且由于修剪后的网络中的不规则稀......