本文主要是介绍求一个正整数所有正因数的和,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 前言
- 一、普通的眼光
- 1.涵盖
- 1.不重复
- 二、奇葩的眼光
- 引申
- 总结
前言
一段时间里不知道要写什么好,遇不见适合分享的东西,也懒了一点儿。本篇是关于求正整数正因数和的,另外有一些类似的引申。
一、普通的眼光
首先,一个正整数可以根据素因式分解唯一定理得到一个唯一的素数乘积的表示形式:
a = p 1 α 1 p 2 α 2 … p m α m a=p_1^{\alpha_1}p_2^{\alpha_2}\dots p_m^{\alpha_m} a=p1α1p2α2…pmαm
于是它的任意一个因式可以表示为:
p 1 β 1 p 2 β 2 … p m β m p_1^{\beta_1}p_2^{\beta_2}\dots p_m^{\beta_m} p1β1p2β2…pmβm
其中 α i \;\alpha_i\; αi和 β i \;\beta_i\; βi满足 α i ≥ β i \;\alpha_i\ge\beta_i\; αi≥βi。
然后我们考虑一个式子:
( 1 + p 1 + p 1 2 + ⋯ + p 1 α 1 ) ( 1 + p 2 + p 2 2 + ⋯ + p 2 α 2 ) … ( 1 + p m + p m 2 + ⋯ + p m α m ) (1+p_1+p_1^2+\dots+p_1^{\alpha_1})(1+p_2+p_2^2+\dots+p_2^{\alpha_2})\dots(1+p_m+p_m^2+\dots+p_m^{\alpha_m}) (1+p1+p12+⋯+p1α1)(1+p2+p22+⋯+p2α2)…(1+pm+pm2+⋯+pmαm)
把这个式子乘开后每一项都是 a \;a\; a的一个因数,如果我们能说明这些因数涵盖了 a \;a\; a的所有因数并且没有重复就可以说明这个式子的结果与 a \;a\; a的所有正因数和相等。
1.涵盖
只需要注意到对于任意的 p 1 β 1 p 2 β 2 … p m β m \;p_1^{\beta_1}p_2^{\beta_2}\dots p_m^{\beta_m}\; p1β1p2β2…pmβm,对应于乘积式里每个素数对应次幂的项的乘积。
1.不重复
根据素因式分解唯一定理即知,每一个因数只有一种分解,只对应于唯一一个项,如果有两个项对应的数字相同则与素因式分解唯一定理矛盾。
二、奇葩的眼光
先来考虑一个多项式:
( x + a 1 ) ( x + a 2 ) … ( x + a m ) (x+a_1)(x+a_2)\dots(x+a_m) (x+a1)(x+a2)…(x+am)
这个多项式的展开式中,根据韦达定理,或者说这里本身就是推导韦达定理的一种思路,我们可以知道常数项等于 a 1 a 2 … a m \;a_1a_2\dots a_m\; a1a2…am, m \;m\; m次项的系数是 1 \;1\; 1, m − 1 \;m-1\; m−1次项系数是 ∑ a i \sum a_i ∑ai, m − 1 \;m-1\; m−1次项系数是 ∑ i ≠ j 且 i ≤ j a i a j \sum\limits_{i\not=j且i\le j} a_ia_j i=j且i≤j∑aiaj, … \;\dots\; …
很容易看出,如果 a 1 \;a_1\; a1、 a 2 \;a_2\; a2、 … \;\dots\; …、 a m \;a_m\; am都是素数,则 a 1 a 2 … a m \;a_1a_2\dots a_m\; a1a2…am的所有正因数之和即为 x = 1 \;x=1\; x=1时的 ( x + a 1 ) ( x + a 2 ) … ( x + a m ) \;(x+a_1)(x+a_2)\dots(x+a_m)\; (x+a1)(x+a2)…(x+am)。
那么对于更复杂一点儿的情况,即素因式分解存在次幂高于一次的正整数,只要先考虑
( x + a 1 + b ) ( x + a 2 ) ( x + a 3 ) … ( x + a m ) (x+a_1+b)(x+a_2)(x+a_3)\dots(x+a_m) (x+a1+b)(x+a2)(x+a3)…(x+am)
代表了什么,再考虑
( x + a ( 1 , 1 ) + a ( 1 , 2 ) + ⋯ + a ( 1 , α 1 ) ) ( x + a ( 2 , 1 ) + a ( 2 , 2 ) + ⋯ + a ( 2 , α 2 ) ) ( x + a ( 3 , 1 ) + a ( 3 , 2 ) + ⋯ + a ( 3 , α 3 ) ) … ( x + a ( m , 1 ) + a ( m , 2 ) + ⋯ + a ( m , α m ) ) (x+a_{(1,1)}+a_{(1,2)}+\dots+a_{(1,\alpha_1)})(x+a_{(2,1)}+a_{(2,2)}+\dots+a_{(2,\alpha_2)})(x+a_{(3,1)}+a_{(3,2)}+\dots+a_{(3,\alpha_3)})\dots(x+a_{(m,1)}+a_{(m,2)}+\dots+a_{(m,\alpha_m)}) (x+a(1,1)+a(1,2)+⋯+a(1,α1))(x+a(2,1)+a(2,2)+⋯+a(2,α2))(x+a(3,1)+a(3,2)+⋯+a(3,α3))…(x+a(m,1)+a(m,2)+⋯+a(m,αm))
代表了什么,然后令 x = 1 \;x=1\; x=1,就可以弄清楚
( 1 + p 1 + p 1 2 + ⋯ + p 1 α 1 ) ( 1 + p 2 + p 2 2 + ⋯ + p 2 α 2 ) … ( 1 + p m + p m 2 + ⋯ + p m α m ) (1+p_1+p_1^2+\dots+p_1^{\alpha_1})(1+p_2+p_2^2+\dots+p_2^{\alpha_2})\dots(1+p_m+p_m^2+\dots+p_m^{\alpha_m}) (1+p1+p12+⋯+p1α1)(1+p2+p22+⋯+p2α2)…(1+pm+pm2+⋯+pmαm)
是怎么来的了
引申
对于任意一个有限的元素都是实数的集合 S = { a 1 , a 2 , … , a n } \;S=\{a_1,a_2,\dots,a_n\}\; S={a1,a2,…,an},我们定义它的所有元素的积为 P ( S ) \;P(S)\; P(S),另外令 P ( ∅ ) = 1 \;P(\varnothing)=1 \; P(∅)=1,根据上面一段的内容,很容易知道
∑ A ⊂ S P ( A ) = ∏ i = 1 n ( 1 + a i ) \sum\limits_{A\subset S}P(A)=\prod\limits_{i=1}^{n}(1+a_i) A⊂S∑P(A)=i=1∏n(1+ai)
再进行延伸一下,如果我们令集合 S \;S\; S中的元素可以重复, a i \;a_i\; ai重复了 m ( i ) \;m(i)\; m(i)次,则有:
∑ A ⊂ S P ( A ) = ∏ i = 1 n ( 1 + ∑ j = 1 m ( i ) a ( i , j ) ) \sum\limits_{A\subset S}P(A)=\prod\limits_{i=1}^{n}(1+\sum\limits_{j=1}^{m(i)}a_{(i,j)}) A⊂S∑P(A)=i=1∏n(1+j=1∑m(i)a(i,j))
上面这两个式子就比较广泛了,举两个例子,可以当做小练习。
1.令 S = { 1 2 , 1 3 , … , 1 100 } \;S=\{\frac{1}{2},\frac{1}{3},\dots,\frac{1}{100}\}\; S={21,31,…,1001},求出来的结果十分奇妙。
2.在上面的第二个式子里令所有的 a ( i , j ) = 1 \;a_{(i,j)}=1\; a(i,j)=1,则它的结果由求因数和变成了统计因数的个数。
总结
本总结与上文无关。学数学的时候经常会感到困难,不过这些也都是小问题,因为他们不会始终都是自己的困难,当自己第二次看的时候松动了,第三次第四次看,基本不再是困难了。因此啃数学书的时候不用因为看不懂而害怕,不用因为生涩而低估自己,多看几次最后看懂的时候或许赞叹一声不错,或许内心会感觉——就这?
这篇关于求一个正整数所有正因数的和的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!