因数分解与算术基本定理

1 素数整除性质

  我们知道,素数 p p p p ≥ 2 p \ge 2 p2)是正因数仅有 1 1 1 p p p的数,不是素数的整数 m m m m ≥ 2 m\ge 2 m2)叫做合数:
素 数 : 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 a1a2ar,则 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 n2可唯一分解成素数乘积: n = p 1 p 2 ⋯ p r n=p_1p_2\cdots p_r n=p1p2pr

  这里分解出来的素数乘积并非指不同的素数,例如 300 = 2 ∗ 2 ∗ 3 ∗ 5 ∗ 5 300=2*2*3*5*5 300=22355,并且不认为因数重排是新的因数分解。下面来证明该定理。

证明:
  首先证明数 n n n可以以某种方式分解成素数乘积,利用数学归纳法。首先 2 = 2 , 3 = 3 , 4 = 2 ∗ 2 2=2,3=3,4=2*2 2=2,3=3,4=22成立,假设对于 n ≤ N n\le N nN都成立,我们需要验证 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 2n1,n2N),根据假设, 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=p1p2prn2=q1q2qr
因此 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=p1p2prq1q2qr,所以 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=p1p2prn=q1q2qs

首先, p 1 ∣ n p_1|n p1n,所以 p 1 ∣ q 1 q 2 ⋯ q s p_1|q_1q_2\cdots q_s p1q1q2qs,根据上面提到的素数整除性质, 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 p2pr=q2qs
同理我们可以消去 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 pn 。因为如果 p p p是整除 n n n的最小素数,则 n = p m , m ≥ p n=pm,m\ge p n=pm,mp,从而 n = p m ≥ p 2 n=pm\ge p^2 n=pmp2,两边同时开平方就可以得到这个结论。这个结论给出了将任何整数 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重复这个过程。

这个过程效率非常低,但是对适当大小的数,在计算机上工作得还是很好的。但是对非常非常大的数,要计算出因数分解,就需要很长时间了。因此就产生了两个紧密相关的问题:

  1. 如何分辨已知数 n n n是素数还是合数?
  2. 如果 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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值