算法笔记重点(17)质因子分解

质因子分解思路比较简单,首先建立一个结构体存储质因子以及其个数,由于十以内不同质因子乘积已经大于int范围,所以只需建立一个10个int的数组。然后打印素数表,并且只需打印到sqrt(n)即可。然后判断从2到sqrt(n)是否满足n%prime==0,如果满足,让n不断除以prime,直到n=1为止。如果遍历完n!=1,则使得n成为一个新的大于sqrt(n)的质因数。

原理:n不存在大于sqrt(n)的质因数或只存在一个大于sqrt(n)的质因数。

最后要提出,如果n各质因子个数分别为e1,e2…en,则n的因子个数为(e1+1)(e2+1)…(en+1)。

另外,n的所有因子之和为(1+p1+p12+…+p1e1)(1+p2+p22+…+p2e2)…(1+pk+pk2+…+pkek),其中pk为质因子。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章