acwing算法基础课数学知识关于质数的笔记
质数
1.质数和合数是针对所有大于1的 "自然数" 来定义的(所有小于等于1的数都不是质数).
2.所有小于等于1的整数既不是质数也不是合数.
3.质数和素数都是同一种性质,只是叫法不同.
4.质数的判定------试除法 或 六倍原理.(1)."d|n"代表的含义是d能整除n,(这里的"|"代表整除).(2).一个合数的约数总是成对出现的,如果d|n,那么(n/d)|n,因此我们判断一个数是否为质数的时候,只需要判断较小的那一个数能否整除n就行了,即只需枚举d<=(n/d),即d*d<=n,d<=sqrt(n)就行了.(3).sqrt(n)这个函数执行的时候比较慢.
5.分解质因数------试除法.(用到的原理:唯一分解定理(算数基本定理))(1).特别要注意------分解质因数与质因数不一样!!!!!!(2).分解质因数是一个过程,而质因数是一个数.(3).一个合数分解而成的质因数最多只包含一个大于sqrt(n)的质因数(反证法,若n可以被分解成两个大于sqrt(n)的质因数,则这两个质因数相乘的结果大于n,与事实矛盾).(4).当枚举到某一个数i的时候,n的因子里面已经不包含2-i-1里面的数,如果n%i==0,则i的因子里面也已经不包含2-i-1里面的数,因此每次枚举的数都是质数.(5).算数基本定理(唯一分解定理):任何一个大于1的自然数N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积N=P1a1P2a2P3a3......Pnan,这里P1<P2<P3......<Pn均为质数,其中指数ai是正整数。这样的分解称为 N 的标准分解式。最早证明是由欧几里得给出的,由陈述证明。此定理可推广至更一般的交换代数和代数数论。(6).质因子(或质因数)在数论里是指能整除给定正整数的质数。根据算术基本定理,不考虑排列顺序的情况下,每个正整数都能够以唯一的方式表示成它的质因数的乘积。(7).两个没有共同质因子的正整数称为互质。因为1没有质因子,1与任何正整数(包括1本身)都是互质。(8).只有一个质因子的正整数为质数。
6.筛质数.6.1:朴素筛法.(1).做法:把2~(n-1)中的所有的数的倍数都标记上,最后没有被标记的数就是质数.(2).原理:假定有一个数p未被2~(p-1)中的数标记过,那么说明,不存在2~(p-1)中的任何一个数的倍数是p,也就是说p不是2~(p-1)中的任何数的倍数,也就是说2~(p-1)中不存在p的约数,因此,根据质数的定义可知:p是质数.(3).调和级数:当n趋近于正无穷的时候,1/2+1/3+1/4+1/5+...+1/n=lnn+c.(c是欧阳常数,约等于0.577左右.).(4).底数越大,log数越小(4).时间复杂度:约为O(n*logn);(注:此处的log数特指以2为底的log数).6.2:埃氏筛(稍加优化版的筛法).(1).质数定理:1~n中有n/lnn个质数.(2).原理:在朴素筛法的过程中只用质数项去筛.(3).时间复杂度:粗略估计:O(n).实际:O(n*log(logn)).(4).1~n中,只计算质数项的话,"1/2+1/3+1/4+1/5+...+1/n"的大小约为log(logn).6.3:线性筛(1).若n在10的6次方的话,线性筛和埃氏筛的时间效率差不多,若n在10的7次方的话,线性筛会比埃氏筛快了大概一倍.(2).思考:一:线性筛法为什么是线性的?二:线性筛法的原理是什么?(3).核心:1~n内的合数p只会被其最小质因子筛掉.(4).原理:1~n之内的任何一个合数一定会被筛掉,而且筛的时候只用最小质因子来筛,然后每一个数都只有一个最小质因子,因此每个数都只会被筛一次,因此线性筛法是线性的.(5).枚举到i的最小质因子的时候就会停下来,即"if(i%primes[j]==0) break;".(6).因为从小到大枚举的所有质数,所以当"i%primes[j]!=0"时,primes[j]一定小于i的最小质因子,primes[j]一定是primes[j]*i的最小质因子.(7).因为是从小到大枚举的所有质数,所以当"i%primes[j]==0"时,primes[j]一定是i的最小质因子,而primes[j]又是primes[j]的最小质因子,因此primes[j]是i*primes[j]的最小质因子.(8).关于for循环的解释:注:首先要把握住一个重点:我们枚举的时候是从小到大枚举的所有质数1.当i%primes[j]==0时,因为是从小到大枚举的所有质数,所以primes[j]就是i的最小质因子,而primes[j]又是其本身primes[j]的最小质因子,因此当i%primes[j]==0时,primes[j]是primes[j]*i的最小质因子.2.当i%primes[j]!=0时,因为是从小到大枚举的所有质数,且此时并没有出现过有质数满足i%primes[j]==0,因此此时的primes[j]一定小于i的最小质因子,而primes[j]又是其本身primes[j]的最小质因子,所以当i%primes[j]!=0时,primes[j]也是primes[j]*i的最小质因子.3.综合1,2得知,在内层for循环里面无论何时,primes[j]都是primes[j]*i的最小质因子,因此"st[primes[j]*i]=true"语句就是用primes[j]*i这个数的最小质因子来筛掉这个数.
acwing算法基础课数学知识关于质数的笔记相关推荐
- 算法基础课-数学知识
数学知识 第四章 数学知识 数论 质数 约数 欧拉函数 欧拉定理与费马小定理 拓展欧几里得定理 裴蜀定理 中国剩余定理 快速幂 高斯消元 求组合数 卡特兰数 容斥原理 博弈论 Nim游戏 SG函数 第 ...
- 算法与数据结构模版(AcWing算法基础课笔记,持续更新中)
AcWing算法基础课笔记 文章目录 AcWing算法基础课笔记 第一章 基础算法 1. 排序 快速排序: 归并排序: 2. 二分 整数二分 浮点数二分 3. 高精度 高精度加法 高精度减法 高精度乘 ...
- ACwing算法基础课全程笔记(2021年8月12日开始重写+优化)
更好的阅读体验 ※基础模板 2021年8月12日开始对基础课笔记进行重写+优化 请大家支持AcWing正版,购买网课能让自己获得更好的学习体验哦~ 链接:https://www.acwing.com/ ...
- FE之DR之线性降维:PCA/白化、LDA算法的数学知识(协方差矩阵)、相关论文、算法骤、代码实现、案例应用等相关配图之详细攻略
FE之DR之线性降维:PCA/白化.LDA算法的数学知识(协方差矩阵).相关论文.算法骤.代码实现.案例应用等相关配图之详细攻略 目录 PCA 1.PCA的数学知识 1.协方差矩阵计算 2.PCA算法 ...
- 背包四讲 (AcWing算法基础课笔记整理)
背包四讲 背包问题(Knapsack problem)是一种组合优化的NP完全问题.问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高 ...
- Acwing - 算法基础课 - 笔记(数学知识 · 二)
文章目录 数学知识(二) 欧拉函数 公式法 筛法 欧拉定理 快速幂 扩展欧几里得算法 中国剩余定理 数学知识(二) 这一小节主要讲解的内容是:欧拉函数,快速幂,扩展欧几里得算法,中国剩余定理. 这一节 ...
- Acwing - 算法基础课 - 笔记(数学知识 · 一)
文章目录 数学知识(一) 质数 质数的判定 分解质因数 朴素思路 优化 筛选质数 朴素筛法 埃氏筛法 线性筛法 小结 约数 求一个数的所有约数 求约数个数 求约数之和 求最大公约数 数学知识章节,主要 ...
- Acwing算法基础课学习笔记
Acwing学习笔记 第一章 基础算法 快速排序 归并排序 二分查找 前缀和与差分 差分 位运算 离散化 第二章 数据结构 单链表 双链表 栈 队列 单调栈 单调队列 KMP算法 Trie 并查集 堆 ...
- 【模板】ACwing算法基础课模板小全
一.基础算法 快速排序算法模板 void quick_sort(int q[], int l, int r) {//递归的终止情况if (l >= r) return;//选取分界线.这里选数组 ...
最新文章
- python数据分析报告的格式_Python数据报表之Excel操作模块用法分析
- 中国工程院院士高文:运用好云计算、大数据会为城市发展带来变革
- VC(MFC、ATL)中 得到2个SYSTEMTIME时间差
- 设计模式--责任链模式(COR)
- 想申请AI方向硕、博,这个内容一定要提前准备!!
- 【ElasticSearch】Es 源码之 CacheService 源码解读
- 伪随机算法c语言,伪随机算法实现各语言实现示例。
- 四、python实现粒子群算法
- 投资理财-基金基本术语概念整理
- Window10 磁盘如何分区(压缩卷操作)
- c++ Bellman-Ford 算法
- 计算机文化宣传普及知识展,浅谈计算机文化
- JAVA毕业设计广东省梅州市宇恒节能科技有限公司计算机源码+lw文档+系统+调试部署+数据库
- WXpython下载很慢安装包教程,直接安装不上,只好把所有包下载下来
- mysql 匹配多个字符,【单选题】在MySQL语句中,可以匹配0个到多个字符的通配符是( )
A. * B. % C. ? D. –...
- Linux使用Geany开发gtk程序教程
- 2022年网络安全的八大趋势
- 超详细的Centos7.5安装Oracle11g
- 二维和三维CAD设计Autodesk AutoCAD中文2021/2022/2023
- MyEclipse Tomcat6.0 Win7下的安装问题?