算法筆記重點(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爲質因子。

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