演算法筆記 質因子分解

2021-10-04 12:45:59 字數 961 閱讀 9560

所謂質因子分解是指將乙個正整數n寫成乙個或多個質數的乘積的形式,例如6=2×3,

8=2×2×2,180=2×2×3×3×5。或者我們也可以寫成指數的形式,例如6=2x3,8=2^3。

解題思路:

先求出素數表

然後分別對輸入的n進行取餘,若等於0,則進行迴圈累加該因子的個數。

#include

using

namespace std;

const

int maxn =

100010

;struct facto***c[10]

;//考慮到2×3×5×7×11×13×17×19×23×29就已經超過了int範圍,因此對乙個int

//型範圍的數來說,fac陣列的大小只需要開到10就可以了.

//求素數

bool

is_prime_factor

(int num)

for(

int i =

2; i <=

sqrt

(num)

; i++)}

return

true;}

int prime[maxn]

, pnum =0;

void

find_prime()

}}intmain()

else

num++

;//不同質因子加1}if

(n ==1)

}if(n !=1)

//結果輸出

for(

int i =

0; i < num; i++

) cout << fac[i]

.x;if

(fac[i]

.count >1)

}}system

("pause");

return0;

}

質分解因數 質因子分解

3 參考 分解因數 時間限制 1000 ms 記憶體限制 32768 kb 長度限制 100 kb 判斷程式 standard 來自 小小 題目描述 所謂因子分解,就是把給定的正整數a,分解成若干個素數的乘積,即 a a1 a2 a3 an,並且 1 a1 a2 a3 an。其中a1 a2 an均為...

質因子分解

今天沒事做,我們來寫個部落格,混混等級!我們以求數的質因子的個數為例來講解。對於質因子分解最簡單最純粹的暴力我相信大家都會的。int getnum int x return ans 但是當處理的資料比較多,而且範圍也比較大的時候顯然這種方式就不再那麼適合了。既然我們是分解質因子,那麼我們就可以先預處...

質因子分解

這個東西會在程式執行結尾提示 press any key to continue 用以結束程式。貴在那裡?讓我們來看看system pause 的流程 1 暫停你的程式 2 在sub process中啟動os 3 尋找要執行的命令並為之分配記憶體 4 等待輸入 5 記憶體 6 結束os 7 繼續你的...