質因子分解
練習題: 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 但是當處理的資料比較多,而且範圍也比較大的時候顯然這種方式就不再那麼適合了。既然我們是分解質因子,那麼我們就可以先預處...