所謂質因子分解是指將乙個正整數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 繼續你的...