质数
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算法基础课数学知识关于质数的笔记相关推荐

  1. 算法基础课-数学知识

    数学知识 第四章 数学知识 数论 质数 约数 欧拉函数 欧拉定理与费马小定理 拓展欧几里得定理 裴蜀定理 中国剩余定理 快速幂 高斯消元 求组合数 卡特兰数 容斥原理 博弈论 Nim游戏 SG函数 第 ...

  2. 算法与数据结构模版(AcWing算法基础课笔记,持续更新中)

    AcWing算法基础课笔记 文章目录 AcWing算法基础课笔记 第一章 基础算法 1. 排序 快速排序: 归并排序: 2. 二分 整数二分 浮点数二分 3. 高精度 高精度加法 高精度减法 高精度乘 ...

  3. ACwing算法基础课全程笔记(2021年8月12日开始重写+优化)

    更好的阅读体验 ※基础模板 2021年8月12日开始对基础课笔记进行重写+优化 请大家支持AcWing正版,购买网课能让自己获得更好的学习体验哦~ 链接:https://www.acwing.com/ ...

  4. FE之DR之线性降维:PCA/白化、LDA算法的数学知识(协方差矩阵)、相关论文、算法骤、代码实现、案例应用等相关配图之详细攻略

    FE之DR之线性降维:PCA/白化.LDA算法的数学知识(协方差矩阵).相关论文.算法骤.代码实现.案例应用等相关配图之详细攻略 目录 PCA 1.PCA的数学知识 1.协方差矩阵计算 2.PCA算法 ...

  5. 背包四讲 (AcWing算法基础课笔记整理)

    背包四讲 背包问题(Knapsack problem)是一种组合优化的NP完全问题.问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高 ...

  6. Acwing - 算法基础课 - 笔记(数学知识 · 二)

    文章目录 数学知识(二) 欧拉函数 公式法 筛法 欧拉定理 快速幂 扩展欧几里得算法 中国剩余定理 数学知识(二) 这一小节主要讲解的内容是:欧拉函数,快速幂,扩展欧几里得算法,中国剩余定理. 这一节 ...

  7. Acwing - 算法基础课 - 笔记(数学知识 · 一)

    文章目录 数学知识(一) 质数 质数的判定 分解质因数 朴素思路 优化 筛选质数 朴素筛法 埃氏筛法 线性筛法 小结 约数 求一个数的所有约数 求约数个数 求约数之和 求最大公约数 数学知识章节,主要 ...

  8. Acwing算法基础课学习笔记

    Acwing学习笔记 第一章 基础算法 快速排序 归并排序 二分查找 前缀和与差分 差分 位运算 离散化 第二章 数据结构 单链表 双链表 栈 队列 单调栈 单调队列 KMP算法 Trie 并查集 堆 ...

  9. 【模板】ACwing算法基础课模板小全

    一.基础算法 快速排序算法模板 void quick_sort(int q[], int l, int r) {//递归的终止情况if (l >= r) return;//选取分界线.这里选数组 ...

最新文章

  1. python数据分析报告的格式_Python数据报表之Excel操作模块用法分析
  2. 中国工程院院士高文:运用好云计算、大数据会为城市发展带来变革
  3. VC(MFC、ATL)中 得到2个SYSTEMTIME时间差
  4. 设计模式--责任链模式(COR)
  5. 想申请AI方向硕、博,这个内容一定要提前准备!!
  6. 【ElasticSearch】Es 源码之 CacheService 源码解读
  7. 伪随机算法c语言,伪随机算法实现各语言实现示例。
  8. 四、python实现粒子群算法
  9. 投资理财-基金基本术语概念整理
  10. Window10 磁盘如何分区(压缩卷操作)
  11. c++ Bellman-Ford 算法
  12. 计算机文化宣传普及知识展,浅谈计算机文化
  13. JAVA毕业设计广东省梅州市宇恒节能科技有限公司计算机源码+lw文档+系统+调试部署+数据库
  14. WXpython下载很慢安装包教程,直接安装不上,只好把所有包下载下来
  15. mysql 匹配多个字符,【单选题】在MySQL语句中,可以匹配0个到多个字符的通配符是( ) A. * B. % C. ? D. –...
  16. Linux使用Geany开发gtk程序教程
  17. 2022年网络安全的八大趋势
  18. 超详细的Centos7.5安装Oracle11g
  19. 二维和三维CAD设计Autodesk AutoCAD中文2021/2022/2023
  20. MyEclipse Tomcat6.0 Win7下的安装问题?

热门文章

  1. 在技术面前,请保持一颗谦卑的心
  2. 牛客2019湘潭大学程序竞赛
  3. 伯克利和Deepmind前赴后继,只为教出一个会做家务的机器人?
  4. 2019.1.12日 PYTHON多线程爬虫笔记
  5. 信噪比SNR和EbN0
  6. 纳税服务系统【角色模块、包含权限】
  7. 创意自画像及简单交互
  8. 苹果数据线芯片IC,苹果充电线IC芯片FH152C6
  9. php获取上级绝对目录路径
  10. Python自动化测试框架之Pytest相关用法-Fixture(2)