第十二章 素数
习题12.1
习题12.2
习题12.3
习题12.4
习题12.5
习题12.6
第十三章 素数的计数
习题13.1
习题13.2
习题13.3
习题13.4
习题13.5
习题13.6
代码-定积分
其他
第十二章 素数
习题12.1
从单个素数 5 构成的列表开始,使用欧几里得证明的有无穷多个素数的思想,创建一个素数表,直到考虑的数太大,不易分解为止。(读者应该能够分解小于 1000 的任何数。)
5 + 1 = 2 × 3 2 × 5 + 1 = 11 2 × 5 × 11 + 1 = 111 = 3 × 37 2 × 3 × 5 × 11 + 1 = 331
习题12.2
(a) 证明存在无穷多个模 6 余 5 的素数。(提示:使用 A = 6 p 1 p 2 ⋯ p r + 5 .)
(b) 试用同样的思想(用 A = 5 p 1 p 2 ⋯ p r + 4 )证明存在无穷多个模 5 余 4 的素数。为什么会出错呢?特别的,如果由 { 19 } 开始,是制作更长的表,会发生什么情况呢?
(a) p 1 = 5 ,假设只存在有限多个素数模 6 余 5 ,记为 p 1 , p 2 , ⋯ , p r .令 A = 6 p 1 p 2 ⋯ p r + 5 ,因只存在有限多个模 6 余 5 的素数,故 A 不是素数。观察表格(偶素数只有2,故无需考虑偶数,当 p ≡ 3 ( m o d 6 ) ( p > 3 ) 显然是合数)
m 1 5 1 1 5 5 5 1
故 A 中必存在模 6 余 5 的质因子,又显然 p i ∤ A , 1 ≤ i ≤ r ,得出矛盾。故而存在无限个模 6 余 5 的素数。
(b)
m 1 2 3 4 1 1 2 3 4 2 2 4 1 3 3 3 1 4 2 4 4 4 2 1
由表格可知,若合数 A ≡ 4 ( m o d 5 ) ,A 中未必就得有模 5 余 4 的素因子。
习题12.3
设 p 是奇素数,将
1 + 2 1 + 3 1 + ⋯ + p − 1 1
写成最简分数 A p / B p .
(a) 求 A p ( m o d p ) 的值,证明你的答案是正确的。
(b) 给出 A p ( m o d p 2 ) 值的猜想。
(c) 证明 (b) 中的猜想是正确的。(这是相当难的)
(a) 因 p 是奇素数,故将数据分为 ( i , p − i ) 1 ≤ i < m , m = 2 p + 1 两两一组,则有 i = 1 ∑ 2 p − 1 ( i 1 + p − i 1 ) = i = 1 ∑ 2 p − 1 i ( p − i ) p
因 i ∤ p , 1 ≤ i ≤ p − 1 ,故而 p ∣ A p
(b) 猜想:A p ≡ 0 ( m o d p 2 ) , p > 3
(c) 由欧拉定理可知,a p − 1 ≡ 1 ( m o d p ) 对任何 a ∈ { 1 , 2 , ⋯ , p − 1 } 都成立。即 1 , 2 , ⋯ , p − 1 是多项式方程 x p − 1 ≡ 1 ( m o d p ) , p − 1 个不同的根。由此我们有 x p − 1 ≡ ( x − 1 ) ( x − 2 ) ⋯ ( x − p + 1 ) + 1 ≡ 1 ( m o d p ) .
令 f ( x ) = ( x − 1 ) ( x − 2 ) ⋯ ( x − p + 1 ) = x p − 1 + A 1 x p − 2 + ⋯ + A p − 2 x + A p − 1 ≡ 0 ( m o d p ) .其中 A p − 2 = − ( p − 1 )! ( 1 + 2 1 + 3 1 + ⋯ + p − 1 1 ) , A p − 1 = ( p − 1 )!
又 A p − 1 ≡ − 1 ( m o d p ) , x p − 1 ≡ 1 ( m o d p ) ,则 g ( x ) = A 1 x p − 2 + ⋯ + A p − 2 x ≡ 0 ( m o d p ) ,有 p − 1 个解,与模 p 多项式定理矛盾,则必然有 A i ≡ 0 ( m o d p ) 对于 1 ≤ i < p − 1 都成立。即 p ∣ A i 。
又 f ( p ) = ( p − 1 )! = p p − 1 + A 1 p p − 2 + ⋯ + A p − 2 p + A p − 1 ,得 p p − 1 + A 1 p p − 2 + ⋯ + A p − 2 p = 0 .
可知:p A p − 2 = − p A p − 3 ⋅ p − p A p − 4 ⋅ p 2 + ⋯ + p p − 3 ,即 p ∣ p A p − 2 , p > 3 ,也即 p 2 ∣ A p − 2 , p > 3
第二种方法:
取 (a) 中的证明结论,B p A p = i = 1 ∑ p − 1 i 1 = 2 p i = 1 ∑ p − 1 i ( p − i ) 1 ,若需证明 p 2 ∣ A p ,则等价证明分子部分 i = 1 ∑ p − 1 i ( p − i ) 1 ≡ i = 1 ∑ p − 1 − i 2 1 ≡ 0 ( m o d p ) . 因p ∤ ( p − 1 )! ,可在等式两边同时乘以 (( p − 1 )! ) 2 ,可得 (( p − 1 )! ) 2 i = 1 ∑ p − 1 − i 2 1 ≡ − (( p − 1 )! ) 2 i = 1 ∑ p − 1 ( i ′ ) 2 = − (( p − 1 )! ) 2 i = 1 ∑ p − 1 i 2 = − (( p − 1 )! ) 2 6 ( p − 1 ) p ( 2 p − 1 ) ( m o d p ) , i ′ 为 i 的逆元,由习题9.2可知,i ′ 互不相同。根据等式可知,p > 3 时, p ∣ i = 1 ∑ p − 1 i ( p − i ) 1 的分子。
1. 模 p 多项式定理推论:设 p 为素数 , f ( x ) = a n x n + a n − 1 x n − 1 + ⋯ + a 1 x + a 0 , 若 f ( x ) ≡ 0 ( m o d p ) 有超过 n 个解,则 p ∣ a i , i = 0 , 1 , 2 , 3 , ... , a n . 2. 威尔逊定理: p 为素数,则 ( p − 1 )! ≡ − 1 ( m o d p ) . ( 令 g ( x ) = ( x − 1 ) ( x − 2 ) ⋯ ( x − p + 1 ) − ( x p − 1 − 1 ) , 将 g ( x ) 展开,并由模 p 多项式定理推论,可得 ( p − 1 )! ≡ − 1 ( m o d p )) . 3. W o l s t e nh o l m e 定理, p 为素数, p > 3 , 则 ( p − 1 )! ( 1 + 2 1 + 3 1 + ⋯ + p − 1 1 ) ≡ 0 ( m o d p 2 ) . 即本习题。
习题12.4
设 m 是正整数, a 1 , a 2 , ⋯ , a ϕ ( m ) 是 1 与 m 之间且与 m 互素的整数,记
a 1 1 + a 2 1 + ⋯ + a ϕ ( m ) 1
的最简分数为 A m / B m
(a) 求 A m ( m o d m ) 的值。证明你的猜想是正确的。
(b) 计算几个 A m ( m o d m 2 ) 的值,试着寻找模式并证明那些模式在一般情况下成立,特别的,何时有 A m ≡ 0 ( m o d m 2 ) ?
可能需要用到以下结论:
⎩ ⎨ ⎧ ϕ ( m ) 总是偶数 ( a i , m ) = 1 时, ( m − a i , m ) = 1 也成立 a i ′ , a 2 ′ , ⋯ , a ϕ ( m ) ′ 互不相同 , 即逆元互不相同 a 1 a 2 ⋯ a ϕ ( m ) ≡ ± 1 ( m o d m )
(a) 将 ( a i , m − a i ) 分为一组,得到 a i 1 + m − a i 1 = a i ( m − a i ) m ,即可得 m ∣ A m 。
(b) 当 a 1 2 + a 2 2 + ⋯ + a ϕ ( m ) 2 ≡ 0 ( m o d m ) 时 A m ≡ 0 ( m o d m 2 ) 。可能有更强的模式。
习题12.5
回顾一下数 n 的阶乘 n ! ,它等于乘积
n ! = 1 ⋅ 2 ⋅ 3 ⋯ ( n − 1 ) ⋅ n
(a) 求每个整数 1 ! , 2 ! , 3 ! , ... , 10 ! 的 2 的最高次幂。
(b) 用公式表示整除 n ! 的 2 的最高次幂的计算法则。用该法计算整除 100 ! 与 1000 ! 的 2 的最高次幂。
(c) 证明 (b) 中的法则是正确的。
(d) 重复 (a),(b) 与 (c),求整除 n ! 的 3 的最高次幂。
(e) 试用公式表示整除 n ! 的素数 p 的最高次幂的一般法则。用该法则求整除 1000 ! 的 7 的最高次幂和整除 5000 ! 的 11 的最高次幂。
(f) 用 (e) 的法则或其他方法,证明如果 p 是素数,p m 整除 n ! , 则 m < n / ( p − 1 ) .(这个不等式在高等数论的许多领域都很重要)
m = i = 1 ∑ i ≤ l o g p n ⌊ p i n ⌋ ≤ n × i = 1 ∑ i ≤ l o g p n p i 1 = n × p ( 1 − p 1 ) 1 − ( p 1 ) l o g p n < p − 1 n , log p n 下取整,
讨论 p i ,⌊ p i n ⌋ 为 [ 1 , n ] 中能被 p i 整除的数的个数,则 n ! 至少能被 p i ⌊ p i n ⌋ 整除,而当 j = 1 , 2 , 3 , ⋯ , i − 1 时已经统计过 p 的 1 , 2 , 3 , ⋯ , i − 1 次幂,故需从中去除这部分得到 p i 的贡献,即 i ⌊ p i n ⌋ − ( i − 1 ) ⌊ p i n ⌋ = ⌊ p i n ⌋ 。
习题12.6
(a) 求满足 p ≡ 1338 ( m o d 1115 ) 的素数 p ,存在无穷多个这样的素数吗?
(b) 求满足 p ≡ 1438 ( m o d 1115 ) 的素数 p ,存在无穷多个这样的素数吗?
(a) ( 1338 , 1115 ) = 223 ,1338 − 1115 = 223 ,不存在无限多个
(b) ( 1438 , 1115 ) = 1 ,故存在。1438 + 3 × 1115 = 4783 是质数,本书结尾质数表。
狄利克雷定理。
第十三章 素数的计数
习题13.1
(a) 用计数函数 F ( x ) = # { 正整数 n ≤ x : n ≡ 2 ( m o d 5 )} 解释为什么陈述“五分之一的整数是模五余二” 有意义。
(b) 用计数函数 S ( x ) = # { 小于 x 的平方数 } 解释为什么陈述 “大多数整数不是平方数” 有意义。
求 x 的简单函数,使得当 x 很大时它近似等于 S ( x ) .
x → ∞ lim x F ( x ) = x → ∞ lim x 5 x = 5 1 ,x → ∞ lim x S ( x ) = x → ∞ lim x x = x → ∞ lim x 1 = 0
习题13.2
(a) 验证 70 与 100 之间的每个偶数可表成两个素数之和。
(b) 有多少种不同方法可将 70 表成两个素数之和 70 = p + q ( p ≤ q ) 呢?对于 90 的相同问题呢?对于 98 的相同问题呢?
制作 n × n 的素数表格,可快速查询结果。
70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 ( 29 , 41 ) ( 31 , 41 ) ( 37 , 37 ) ( 29 , 47 ) ( 37 , 41 ) ( 37 , 43 ) ( 41 , 41 ) ( 41 , 43 ) ( 43 , 43 ) ( 41 , 47 ) ( 43 , 47 ) ( 31 , 61 ) ( 47 , 47 ) ( 43 , 53 ) ( 37 , 61 ) ( 47 , 53 ) ( 23 , 47 ) ( 29 , 43 ) ( 31 , 43 ) ( 23 , 53 ) ( 31 , 47 ) ( 19 , 61 ) ( 29 , 53 ) ( 37 , 47 ) ( 19 , 67 ) ( 29 , 59 ) ( 37 , 53 ) ( 19 , 73 ) ( 41 , 53 ) ( 37 , 59 ) ( 31 , 67 ) ( 41 , 59 ) ( 17 , 53 ) ( 19 , 53 ) ( 13 , 61 ) ( 17 , 59 ) ( 19 , 59 ) ( 13 , 67 ) ( 23 , 59 ) ( 31 , 53 ) ( 13 , 73 ) ( 17 , 71 ) ( 31 , 59 ) ( 13 , 79 ) ( 23 , 71 ) ( 29 , 67 ) ( 19 , 79 ) ( 29 , 71 ) ( 11 , 59 ) ( 13 , 59 ) ( 7 , 67 ) ( 5 , 71 ) ( 17 , 61 ) ( 7 , 73 ) ( 11 , 71 ) ( 23 , 61 ) ( 7 , 79 ) ( 5 , 83 ) ( 29 , 61 ) ( 3 , 89 ) ( 11 , 83 ) ( 23 , 73 ) ( 17 , 83 ) ( 3 , 67 ) ( 11 , 61 ) ( 3 , 71 ) ( 3 , 73 ) ( 11 , 67 ) ( 3 , 79 ) ( 17 , 67 ) ( 3 , 83 ) ( 23 , 67 ) ( 5 , 89 ) ( 17 , 79 ) ( 11 , 89 ) ( 5 , 67 ) ( 7 , 71 ) ( 13 , 71 ) ( 19 , 71 ) ( 13 , 83 ) ( 3 , 97 ) ( 5 , 73 ) ( 11 , 73 ) ( 17 , 73 ) ( 7 , 89 ) ( 5 , 79 ) ( 11 , 79 ) ( 7 , 83 )
虽找不出什么规律,但数字越大,表示法越不唯一。
习题13.3
数 n ! 是 1 到 n 的所有整数的乘积。例如,4 ! = 1 ⋅ 2 ⋅ 3 ⋅ 4 = 24 , 7 ! = 1 ⋅ 2 ⋅ 3 ⋅ 4 ⋅ 5 ⋅ 6 ⋅ 7 = 5040 . 如果 n ≥ 2 ,证明所有整数
n ! + 2 , n ! + 3 , n ! + 4 , ⋯ , n ! + n
都是合数。
n ! + i = 1 ⋅ 2 ⋯ ⋅ ( i − 1 ) ⋅ i ⋅ ( i + 1 ) ⋯ n + i = i × ( 1 ⋅ 2 ⋯ ⋅ ( i − 1 ) ⋅ ( i + 1 ) ⋯ n + 1 )
习题13.4
(a) 你认为存在无穷多个形如 N 2 + 2 的素数吗?
(b) 你认为存在无穷多个形如 N 2 − 2 的素数吗?
(c) 你认为存在无穷多个形如 N 2 + 3 N + 2 的素数吗?
(d) 你认为存在无穷多个形如 N 2 + 2 N + 2 的素数吗?
N 2 + 3 N + 2 = ( N + 1 ) ( N + 2 ) ,不存在
N 2 + 2 N + 2 = ( N + 1 ) 2 + 1 ,存在
习题13.5
素数定理说明小于 x 的素数个数近似等于 x / ln x .这道习题要求解释为什么某些称述看起来是合理的。不必写下正规的数学证明,而是用尽可能令人信服的语言加以解释,为什么素数定理使得下述每个称述合情合理。
(a) 如果随机得取一个 1 到 x 的整数,则取到素数的概率大约是 1/ ln x 。
(b) 如果随机地取 1 到 x 的两个整数,则取到两个数都是素数的概率大约是 1/ ( ln x ) 2 .
(c) 1 与 x 之间的孪生素数的个数近似等于x / ( ln x ) 2 ,(注意,这里解释了关于孪生素数奇数函数 T ( x ) 所猜测的极限公式。)
(a) x x / ln x = ln x 1
(b) x ( x − 1 ) x / ln x ( x / ln x − 1 ) = x ( x − 1 ) ( ln x ) 2 x ( x − ln x ) ≈ ( ln x ) 2 1
(c) 素数概率大约是 1/ ln x ,先取一个素数 x ,剩下的整数是素数的概率仍近似等于 1/ ln x 。即每个整数都等可能的是素数,即 x 的相邻数是素数的概率也是 1/ ln x 。因此取到孪生素数的概率大约为 1/ ( ln x ) 2 。
习题13.6
(这道习题适用于具备微积分只是的读者。)素数定理说明当 x 很大时,素数计数函数 π ( x ) 近似等于 x / ln x .结果表明 π ( x ) 更接近于定积分 ∫ 2 x d t / ln t .
(a) 证明
x → ∞ lim ( ∫ 2 x ln t d t ) / ( ln x x ) = 1
这意味着当 x 很大时,∫ 2 x d t / ln t 与 x / ln x 近似相等。(提示:利用洛必达法则和微积分第二基本定理。)
(b) 可以证明
∫ ln x d t = ln ( ln t ) + ln t + 2 ⋅ 2 ! ln 2 t + 3 ⋅ 3 ! ln 3 t + 4 ⋅ 4 ! ln 4 t + ⋯
利用这个级数计算 ∫ 2 x d t / ln t 在 x = 10 , 100 , 1000 , 1 0 4 , 1 0 6 , 1 0 9 时的数值。比较所得到的 π ( x ) 的值与第 13 章的表给出的 x / ln x 的值,哪一个更接近 π ( x ) ,是积分 ∫ 2 x d t / ln t 还是函数 x / ln x 呢?(解答该问题可以使用便携式计算器。但你也许更喜欢使用计算机或可编程计算器。)
(c) 对 (b) 中的级数求微分,证明导数实际上等于 1/ ln t .(提示:利用 e x 的级数。)
(a)
ln x x x = e t t e t = t 1 ⋅ ( 1 + t + 2 ! t 2 + 3 ! t 3 + 4 ! t 4 + ⋯ ) = t 1 + 1 + 2 ! t + 3 ! t 2 + 4 ! t 3 + ⋯ t = ln x ln x 1 + 1 + 2 ! ln x + 3 ! ln 2 x + 4 ! ln 3 x + ⋯ ∫ 2 x d t / ln t − x / ln x = c − 1 − ln x 1 + ln ln x + 1 ⋅ 2 ! ln x + 2 ⋅ 3 ! ln 2 x + 3 ⋅ 4 ! ln 3 x + ⋯ x → ∞ lim x / ln x ∫ 2 x d t / ln t − x / ln x 洛必达法则 x → ∞ lim ( x / ln x ) ′ ( ∫ 2 x d t / ln t − x / ln x ) ′ = x → ∞ lim 1/ ln x ( 1/ x ln 2 x ) ⋅ ( e l n x − 1 − ln x ) ≤ x → ∞ lim ln x 1 = 0
(b)
∫ 2 x ln t d t t = e t ∫ l n 2 l n x ln e t d e t = ∫ l n 2 l n x t e t d t = ∫ l n 2 l n x ( t 1 + 1 + 2 ! t + 3 ! t 2 + 4 ! t 3 + ⋯ ) = c + ln ln x + ln x + 2 ⋅ 2 ! ln 2 x + 3 ⋅ 3 ! ln 3 x + ⋯ c = − ln ln 2 − ln 2 − 2 ⋅ 2 ! ln 2 2 − 3 ⋅ 3 ! ln 3 2 − ⋯ ≈ − 0.467948
x π ( x ) x / ln x π ( x ) / ( x / ln x ) ∫ 2 x d t / ln t π ( x ) / ( ∫ 2 x d t / ln t ) 10 4 4.34 0.921 5.12 0.781 100 25 21.71 1.151 29.08 0.860 1000 168 144.76 1.161 176.56 0.951 1 0 4 1229 1085.74 1.132 1245.09 0.987 1 0 6 78498 72382.41 1.084 78626.50 0.998 1 0 9 50847534 48254942.43 1.054 50849233.91 1.000
(c)
( ln ln t + ln t + 2 ⋅ 2 ! ln 2 t + 3 ⋅ 3 ! ln 3 t + 4 ⋅ 4 ! ln 4 t + ⋯ ) ′ = t ln t 1 + t 1 + 2 t ⋅ 2 ! 2 ln t + 3 t ⋅ 3 ! 3 ln 2 t + ⋯ = t 1 ⋅ ( ln t 1 + 1 + 2 ! ln t + 3 ! ln 2 t + ⋯ ) = t 1 ⋅ ln t 1 ⋅ ( 1 + 1 ! ln t + 2 ! ln 2 t + 3 ! ln 3 t + ⋯ ) = t ln t 1 ⋅ e l n t = ln t 1
代码-定积分
public double f ( int x , double e ) {
int u = - ( ( int ) Math . log ( e ) ) + 5 ;
BigDecimal y = BigDecimal . valueOf ( Math . log ( x ) ) ;
BigDecimal t = BigDecimal . ONE ;
BigDecimal s = BigDecimal . valueOf ( Math . log ( y . doubleValue ( ) ) ) ;
BigDecimal f = BigDecimal . ONE ;
for ( BigDecimal i = BigDecimal . ONE ; ; i = i . add ( BigDecimal . ONE ) ) {
f = f . multiply ( i ) ;
t = t . multiply ( y ) ;
BigDecimal _t = t . divide ( f . multiply ( i ) , u , RoundingMode . HALF_UP ) ;
s = s . add ( _t ) ;
if ( _t . doubleValue ( ) < e ) break ;
}
return s . doubleValue ( ) ;
}
其他
数论概论⋅ 第一部分
数论概论⋅ 第二部分
数论概论⋅ 第三部分
数论概论⋅ 第四部分
数论概论⋅ 第五部分