小演算法整理 質因子分解

2021-08-26 09:33:36 字數 1123 閱讀 7568

質因子分解

練習題: pat. a1059 ||

| 儲存結構

//質因數 結構體 

struct factor fac[10]; //int範圍內,10位夠用了

考慮到2x3x5x7x11x13x17x19x23x29就已經超過了int範圍,因此對乙個int範圍內的數來說,fac陣列的大小只需開到10就可以了!

| 結論:

| 求解思路:獲取質因數

| 擴充套件點:

| 具體實現:

const

int maxn = 100010; //int範圍內,素數錶開到10^5就夠用了!

int prime[maxn], pnum = 0; //素數表, 素數個數

//質因子 結構體

struct factor fac[10]; //int範圍內,10位夠用了

//判斷素數

bool isprime( int k)

return

true;

}//儲存素數表

void get_prime(int n)

}//儲存質因子資訊

int get_factor(int n)

count++; //不同質因子個數+1

if(remain == 1) break; //及時退出迴圈,節省時間

}if(remain > 1)

return count;

}/*質因子分解給定整數,並輸出*/

int main()

if(fac[fac_num-1].num != 1) printf("%d^%d\n", fac[fac_num-1].x, fac[fac_num-1].num);

else

printf("%d\n", fac[fac_num-1].x);

return

0;}

質分解因數 質因子分解

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

演算法筆記 質因子分解

所謂質因子分解是指將乙個正整數n寫成乙個或多個質數的乘積的形式,例如6 2 3,8 2 2 2,180 2 2 3 3 5。或者我們也可以寫成指數的形式,例如6 2x3,8 2 3。解題思路 先求出素數表 然後分別對輸入的n進行取餘,若等於0,則進行迴圈累加該因子的個數。include using ...

質因子分解

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