大家好,欢迎来到IT知识分享网。
1 素数整除性质
我们知道,素数 p p p( p ≥ 2 p \ge 2 p≥2)是正因数仅有 1 1 1和 p p p的数,不是素数的整数 m m m( m ≥ 2 m\ge 2 m≥2)叫做合数:
素 数 : 2 , 3 , 5 , 7 , 11 , 13 , 17 , 19 , 23 , 29 , 31 , ⋯ 合 数 : 4 , 6 , 8 , 9 , 10 , 12 , 14 , 15 , 16 , 18 , 20 , ⋯ 素数:2,3,5,7,11,13,17,19,23,29,31,\cdots \\ 合数:4,6,8,9,10,12,14,15,16,18,20,\cdots 素数:2,3,5,7,11,13,17,19,23,29,31,⋯合数:4,6,8,9,10,12,14,15,16,18,20,⋯
下面这条引理是很重要的,但并不显然。
引理:令 p p p是素数,假设 p p p整除乘积 a b ab ab,则 p p p整除 a a a或 p p p整除 b b b。下面来证明这条引理。
证明:
如果 p p p整除 a a a,则证明完毕。现在假设 p p p不整除 a a a。考虑 g c d ( a , p ) gcd(a,p) gcd(a,p),既然它整除 p p p那么它就是 1 1 1或 p p p,又因为 p p p不整除 a a a,所以 g c d ( a , p ) = 1 gcd(a,p)=1 gcd(a,p)=1。根据线性方程定理,我们可以求得方程:
p x + a y = 1 px + ay=1 px+ay=1
的整数解 x , y x,y x,y,现在方程两边同时乘以 b b b得到:
p b x + a b y = b pbx + aby = b pbx+aby=b
显然 p p p整除 p b x pbx pbx,又因为我们已知 p p p整除 a b y aby aby,所以 p p p整除 b b b。
进一步,我们可以将这条引理推广到多个因数的乘积形式,就得到了下面这条定理。
定理(素数整除性质):假设素数 p p p整除乘积 a 1 a 2 ⋯ a r a_1a_2\cdots a_r a1a2⋯ar,则 p p p整除 a 1 , a 2 , ⋯ , a r a_1,a_2,\cdots ,a_r a1,a2,⋯,ar中至少一个因数。
利用上述引理可以很容易地证明这条定理。
2 算术基本定理
算术基本定理:每个整数 n ≥ 2 n\ge 2 n≥2可唯一分解成素数乘积: n = p 1 p 2 ⋯ p r n=p_1p_2\cdots p_r n=p1p2⋯pr。
这里分解出来的素数乘积并非指不同的素数,例如 300 = 2 ∗ 2 ∗ 3 ∗ 5 ∗ 5 300=2*2*3*5*5 300=2∗2∗3∗5∗5,并且不认为因数重排是新的因数分解。下面来证明该定理。
证明:
首先证明数 n n n可以以某种方式分解成素数乘积,利用数学归纳法。首先 2 = 2 , 3 = 3 , 4 = 2 ∗ 2 2=2,3=3,4=2*2 2=2,3=3,4=2∗2成立,假设对于 n ≤ N n\le N n≤N都成立,我们需要验证 N + 1 N+1 N+1时结论成立。
因此就有两种可能性,首先如果 N + 1 N+1 N+1是素数,那么它本身就已经分解成素数;其次 N + 1 N+1 N+1是合数,这表明 N + 1 N+1 N+1可分解为 n 1 n 2 n_1n_2 n1n2( 2 ≤ n 1 , n 2 ≤ N 2\le n_1,n_2 \le N 2≤n1,n2≤N),根据假设, n 1 , n 2 n_1,n_2 n1,n2都可以分解成素数的乘积:
n 1 = p 1 p 2 ⋯ p r n 2 = q 1 q 2 ⋯ q r n_1 = p_1p_2\cdots p_r\\ n_2=q_1q_2\cdots q_r n1=p1p2⋯prn2=q1q2⋯qr
因此 N + 1 = p 1 p 2 ⋯ p r q 1 q 2 ⋯ q r N+1=p_1p_2\cdots p_rq_1q_2\cdots q_r N+1=p1p2⋯prq1q2⋯qr,所以 N + 1 N+1 N+1也可以分解成素数的乘积,得证。
接下来证明唯一性,即只有一种这样的因数分解。我们假设 n n n能够被分解为两种形式的素数乘积:
n = p 1 p 2 ⋯ p r n = q 1 q 2 ⋯ q s n = p_1p_2\cdots p_r\\ n=q_1q_2\cdots q_s n=p1p2⋯prn=q1q2⋯qs
首先, p 1 ∣ n p_1|n p1∣n,所以 p 1 ∣ q 1 q 2 ⋯ q s p_1|q_1q_2\cdots q_s p1∣q1q2⋯qs,根据上面提到的素数整除性质, p 1 p_1 p1整除至少一个 q i q_i qi,不妨让它等于 q 1 q_1 q1,又因为 q 1 q_1 q1也是素数,因此 p 1 = q 1 p_1=q_1 p1=q1,这样我们就可以同时消掉 p 1 , q 1 p_1,q_1 p1,q1得:
p 2 ⋯ p r = q 2 ⋯ q s p_2\cdots p_r=q_2\cdots q_s p2⋯pr=q2⋯qs
同理我们可以消去 p 2 , p 3 , ⋯ p_2,p_3,\cdots p2,p3,⋯,如果左边的 p p p先被消去,那么左边就是 1 1 1,因此右边也应该是 1 1 1,所以这两个分解的因数个数是相同的即 r = s r=s r=s,并且重排一个序列可以得到另外一个序列。所以唯一性也得到了证明。
3 因数分解的方法
当 n n n很小时,我们可以挨个试,但是 n n n比较大的时候,因数分解就很困难了。一种方法是用素数 2 , 3 , 5 , 7 , ⋯ 2,3,5,7,\cdots 2,3,5,7,⋯去除 n n n,知道找到一个因数,再对剩余部分继续尝试。
如果 n n n本身不是素数,则必有整除 n n n的素数 p ≤ n p\le \sqrt n p≤n。因为如果 p p p是整除 n n n的最小素数,则 n = p m , m ≥ p n=pm,m\ge p n=pm,m≥p,从而 n = p m ≥ p 2 n=pm\ge p^2 n=pm≥p2,两边同时开平方就可以得到这个结论。这个结论给出了将任何整数 n n n分解成素数乘积的方法:
用小于等于 n \sqrt n n的每个数(或正好每个素数)试除它。如果没有求得整除 n n n的整数,则 n n n本身是素数,否则求得的第一个因数是素数 p p p,再对 m = n / p m=n/p m=n/p重复这个过程。
这个过程效率非常低,但是对适当大小的数,在计算机上工作得还是很好的。但是对非常非常大的数,要计算出因数分解,就需要很长时间了。因此就产生了两个紧密相关的问题:
- 如何分辨已知数 n n n是素数还是合数?
- 如果 n n n是合数,如何将它分解成素数的乘积?
第一个问题更容易回答,即便求不出来大数的因数,我们以可以知道它是否是合数。用类似的方式我们可以求得很大的素数 p , q p,q p,q这样如果给定一个 n = p q n=pq n=pq,就不可能通过分解 n n n来获得数 p p p与 q q q。这个事实也是用数论建立高度安全密码的关键所在。
4 参考资料
- 《数论概论》第四版 P31-P35
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/158943.html