HUSTOJ 1033 質因子分解

2021-07-11 18:20:28 字數 658 閱讀 9559

任意輸入一正整數n,求出它的所有質因子。如:10=(2 5);20=(2 2 5)。

輸入只有一行,包括1個整數。

輸出只有一行.為你分解的質因子,數字間用乙個空格分開。

36
2 2 3 3

演算法思想:

ollard rho因數分解

2023年,john m. pollard提出了因數分解的方法,pollard rho快速因數分解。該演算法時間複雜度為o(n^(1/4))。

分解質因數**:

將乙個正整數分解質因數。例如:輸入36列印出36=2*2*3*3*。

程式分析:對n進行分解質因數,應先找到乙個最小的質數k,然後按下述步驟完成: 

(1)如果這個質數恰等於n,則說明分解質因數的過程已經結束,列印出即可。

(2)如果n<>k,但n能被k整除,則應列印出k的值,並用n除以k的商,作為新的正整數你n,

重複執行第一步。

(3)如果n不能被k整除,則用k+1作為k的值,重複執行第一步。

問題解決方案源**如下:

#includeint main()else

} }printf("%d",num);

///最後乙個數字就是最後乙個或者開始相等的乙個

return 0;

}

質分解因數 質因子分解

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 繼續你的...