小组专题四 : 素数
整除的课后习题
- 求不超过1000且不能被3或5整除的正整数的个数
- 求不超过1000且不能被3和5整除的正整数的个数
3.1 素数
-
素数的定义:
- 素数是大于 1 1 1 的正整数,并且除了 1 1 1 和它本身外不能被其他正整数所整除。
-
合数的定义:
- 大于 1 1 1 的不是素数的正整数称为合数。
-
素数的无限性
-
引理 3.1 3.1 3.1 每一个大于 1 1 1 的一个正整数都有一个素因子。
- 反证法:假设存在一个大于 1 1 1 的正整数没有素因子,那么大于 1 1 1 且没有素因子的正整数构成的集合非空。由良序性知集合存在一个大于 1 1 1 且没有素因子的最小的正整数 n n n 。首先 n n n 不是素数。可以写成 n = a b n=ab n=ab 其中 1 < a < n , 1 < b < n 1<a<n,\,1<b<n 1<a<n,1<b<n . 因为 a < n a<n a<n 所以 a a a 一定有素因子。因此 n n n 一定有素因子,与假设矛盾。故原命题成立。
-
定理 3.1 3.1 3.1 存在无穷多个素数。
-
证明:假设只有有限多个素数 p 1 , p 2 , ⋯ , p n p_1,p_2,\cdots,p_n p1,p2,⋯,pn, 其中 n n n 是正整数。考虑整数 Q n Q_n Qn ,它的值由这些素数的乘积加一得到,即:
Q n = p 1 p 2 ⋯ p n + 1 Q_n=p_1p_2\cdots p_n+1 Qn=p1p2⋯pn+1
由引理 3.1 3.1 3.1 得到, Q n Q_n Qn 至少有一个素因子设为 q q q 。如果 q = p j q=p_j q=pj ,其中 j j j 为某个整数且 1 ≤ j ≤ n 1\le j\le n 1≤j≤n, 由于 Q n − p 1 p 2 ⋯ p n = 1 Q_n-p_1p_2\cdots p_n=1 Qn−p1p2⋯pn=1, 且 q q q 可以整除该等式的左边两项,因此 q ∣ 1 q|1 q∣1 ,这显然是不可能的,因为 1 1 1 不能被任何素数整除。
于是 q q q 不是 p j p_j pj 的任何一个,这就与假设矛盾。
-
-
-
求素数
-
定理 3.2 3.2 3.2 如果 n n n 是一个合数,那么 n n n 一定有一个不超过 n \sqrt{n} n 的素因子。
-
证明:既然 n n n 是合数,那么 n n n 可以写为 n = a b n=ab n=ab ,其中 a , b ∈ Z , 1 < a ≤ b < n a,b\in \mathbb{Z},1<a\le b<n a,b∈Z,1<a≤b<n。
我们一定有 a ≤ n a\le \sqrt{n} a≤n,否则会 a b > n ⋅ n = n ab>\sqrt{n}·\sqrt{n}=n ab>n⋅n=n。
由引理 3.1 3.1 3.1 , a a a 至少有一个素因子,且 a a a 的因子一定也是 n n n 的因子,故显然这个素因子小于等于 n \sqrt{n} n
-
应用:埃拉托色尼斯筛。
-
-
-
π ( x ) \pi(x) π(x) 函数
-
π ( x ) \pi(x) π(x) 表示不超过 x x x 的素数的个数,其中 x x x 是正实数。
-
π ( 10 ) = 4 , π ( 100 ) = 25 \pi(10)=4,\,\pi(100)=25 π(10)=4,π(100)=25
-
素数定理: π ∼ x ln x \pi \sim \frac{x}{\ln x} π∼lnxx
-
切比雪夫不等式: n 8 ln n < π ( n ) < 12 n ln n \frac{n}{8\ln n} < \pi(n) < 12\frac{n}{\ln n} 8lnnn<π(n)<12lnnn
-
性质一:密度分布 lim x → ∞ π ( x ) x = 0 \underset{x\rightarrow \infin}{\lim}\frac{\pi(x)}{x}=0 x→∞limxπ(x)=0
-
性质二:二倍分布 π ( 2 n ) − π ( n ) ≥ 1 ∀ n ≥ 1 \pi(2n)-\pi(n)\ge1\quad \forall n\ge1 π(2n)−π(n)≥1∀n≥1
-
性质三:哈代和利特尔伍德的猜想(现在一般认为该猜想是错误的)
π ( x + y ) ≤ π ( x ) + π ( y ) x , y ∈ Z + \pi(x+y)\le \pi(x)+\pi(y)\quad x,y\in\mathbb{Z}^+ π(x+y)≤π(x)+π(y)x,y∈Z+
-
-
定理 3.3 3.3 3.3 (狄利克雷关于等差数列中素数的定理)
- 假设 a , b a,b a,b 是互素的正整数。那么等差数列 a n + b ( n = 1 , 2 , 3 ⋯ ) an+b(n=1,\,2,\,3\cdots) an+b(n=1,2,3⋯) 包含了无穷多的素数。
- 目前为止该证明没有简单的证法(有复变量证明或者初等但较复杂的证明)。
-
已知最大的素数:
- 梅森素数:形如
2
p
−
1
2^p-1
2p−1 的素数,其中
p
p
p 是素数。
- 可以使用一种特殊的测试检测出该梅森素数是不是素数,不使用试除法。
- 目前已知最大的素数为 2 82 , 589 , 933 − 1 2^{82,589,933}-1 282,589,933−1 ,是第51个梅森素数。
- 发现者是 GIMPS 志愿者 Patrick Laroche,发现时间是在 2018 年 12 月 7 日。
- 为什么是 2 p − 1 2^p-1 2p−1 ?
- 梅森素数:形如
2
p
−
1
2^p-1
2p−1 的素数,其中
p
p
p 是素数。
-
素数公式
- 定义:只产生素数的公式。
- 关于一个变元的多项式没有这种性质。
- 关于
n
n
n 个变元的多项式不能只产生素数,其中
n
n
n 是正整数。
- 米尔斯证明存在一个常数 θ \theta θ 使得函数 f ( n ) = [ θ 3 n ] f(n)=[\theta^{3^n}] f(n)=[θ3n] 只产生素数。但是 θ ≈ 1.3064 \theta \approx 1.3064 θ≈1.3064 ,确切值未知,不实用。
- 可以使用概率素性检验法来生成大素数。
-
素数证明:
- 定义:确定一个正整数 n n n 是否是一个素数。
- 方法
I
\mathrm{I}
I : 试除法
- 使用不超过 n \sqrt{n} n 的所有素数,看 n n n 是否能被他们整除。
- 效率不高。位运算次数至少为 c n c\sqrt{n} cn。
- 200位的数检测需要亿万年。
- 方法
I
I
\mathrm{II}
II : 米勒给出了一个
O
(
(
log
n
)
5
)
O\Big((\log n)^5\Big)
O((logn)5) 位运算的算法。
- 但是实在广义黎曼猜想成立的前提下实现的。广义黎曼猜想现在还只是猜想。
- 方法
I
I
I
\mathrm{III}
III : Leonard Adleman、Carl Pomerance 、 Robort Rumely
- 建立一个复杂度为 ( log n ) c log log log n (\log n)^{c\log\log\log n} (logn)clogloglogn 的算法。其中 c c c 是常数。
- 虽然不是多项式时间,但是增长十分缓慢。
- 400位的数检测需要一秒。1000位的数检测需要一小时。
- 方法
I
V
\mathrm{IV}
IV :M. Agrawal 和N. Kayal 、N. Saxena
- 2002年,他们宣布找到了一个素性检验法,位运算次数 O ( ( log n ) 12 ) O\Big((\log n)^{12}\Big) O((logn)12)
- 提出 PRIMES 属于 P
- H. Lenstra 和 C. Pomerance 将算法的复杂度减到了 O ( ( log n ) 6 + ϵ ) O\Big((\log n)^{6+\epsilon}\Big) O((logn)6+ϵ) ,其中 ϵ \epsilon ϵ 是任意正实数。