引入

为什么 不算素数?

素数有无穷多个,这个结论两千多年前就被证明了,它需要什么前提?

素数的分布看起来毫无规律,为什么还会有一个”定理”描述它?

正文

定义

设 是除 和 外的整数,如果 除了 和 外没有其他约数,则称 为素数(也称质数)。大于 且不是素数的整数称为合数。

为什么 不是素数

若 是素数,唯一分解定理就会失效:,分解方式无穷多。

把 排除在外,是为了保证分解的唯一性。这是定义的选择,不是发现。

数类型原因
素数(按上述定义)约数只有
既非素数也非合数排除以保唯一性
不讨论任何数都整除
唯一的偶素数

素数有无穷多个

定理(欧几里得)

素数有无穷多个。

证明(反证法):

假设素数只有有限个,记为 。构造

则 除以任一 都余 ,所以 都不整除 。

但 ,必有素因数。这个素因数不在假设的列表中,矛盾。故素数有无穷多个。

证明的关键:构造一个”躲开所有已知素数”的数。这个技巧在数论中反复出现。

唯一分解定理

定理(算术基本定理)

设 是大于 的正整数,则 可以表示为有限个素数的乘积,且在不计次序的意义下表示唯一: 其中 为素数, 为正整数。

唯一性为什么重要:它保证了”分解”这件事有意义。若分解不唯一,” 的素因数”就无法定义。

素数定理

其中 表示不超过 的素数个数。

含义: 大约等于 。素数虽然有无穷多个,但密度趋于零。

即对于较小的 ,近似公式 也相当精确。例如当 时,误差不超过 :

量值
实际
近似

素数判定

方法做法复杂度
试除法用 的素数试除
埃拉托斯特尼筛法筛去合数,留下素数
米勒-拉宾概率判定
AKS确定性多项式算法

试除只需到 :若 且 ,则 ,所以只需检查较小的因子。

与密码学的关系

RSA 加密的基础是:大整数分解很难,但验证乘积很容易。

操作难度
两个大素数相乘容易
把乘积分解回两个素数极难

素数定理在这里的意义:它保证了”大素数足够多”,可以随时生成新的密钥。

常见误区

错误说法问题
” 是素数”会破坏唯一分解
” 不是素数”是唯一的偶素数
”素数有有限个”欧几里得已证无穷
”素数定理给出了精确个数”是渐近估计
”所有奇数都是素数”、 是反例

引出

为什么排除 才能保证唯一分解?

素数定理的证明需要什么工具?为什么它属于解析数论?

是否存在无穷多对孪生素数?