原始數
回答
我們可以說這樣的:
讓數以檢查是n
。假設有一個k <= sqrt(n)
,它除以n
。現在,我們可以寫k
如下:
k = (p_1^a_1)(p_2^a_2)...(p_x^a_x)
其中p_1, p_2, ..., p_x
是質數小於或等於k
和a_1, a_2, ..., a_x >= 1
。現在,由於k
除以n
,並且由於我們知道p_1, p_2, ..., p_x
除k
,通過傳遞性,我們可以推斷出p_1, p_2, ..., p_x
除n
。因此,爲了證明n
是非素數,檢查是否有任何素數<= sqrt(n)
除以n
就足夠了。
Upvoted,但你的論點可以更簡單 - k至少有一個素因子p,p | k | n,所以p除以n。 [當n是素數的平方時,您還需要檢查素數<= sqrt(n)而不是
@PaulHankin感謝您指出最後一個參數中缺少的'equals'。我同意我的論點有點冗長,但我認爲論證(你的和我的)的外殼是一樣的。我應該修剪我的答案嗎? – Shubham
是的,我同意這是一個想法。我認爲如果你將它編輯下來,它會更好的回答,因爲這會讓這個想法更容易被看到。但如果你想這樣做,取決於你。 –
每個整數n大於1或者是素數本身或者是素數(Fundamental theorem of arithmetic)的乘積。因此,如果n本身不是主要的,它必須能被至少兩個素數整除。這些中的至少一個必須小於或等於√Ñ(否則他們的產品將是大於Ñ),因此它是足夠的,以檢查所有的素數小於或等於√n。
是的,你所說的絕對正確。
您只需要檢查所有小於squareRoot(n)
的素數,但問題是您不知道數字是否爲素數。所以,你遍歷到squareRoot(n)
是的,它只是需要檢查的因素少sqrt(n)。但是這個算法有點慢。我還有一個更好的算法稱爲Miller_Rabin_primality My previous project code Source code
這裏是Wiki
- 1. 嘲笑原始POST數據
- 2. 原始庫存數據
- 3. 保存原始detph數據
- 4. shared_ptr原始指針參數
- 5. MPMediaItems原始歌曲數據
- 6. Google Drive原始數據?
- 7. Java HTTP Post原始數據
- 8. 的Tcp原始數據包
- 9. 從原始數據幀
- 10. Wifi原始數據傳輸
- 11. 操作原始PNG數據
- 12. 原始數據爲excel
- 13. Django中的原始數據
- 14. 原始遞歸函數
- 15. DirectShow原始數據訪問
- 16. EasyHook原始函數調用
- 17. RRD原始數據到JSON
- 18. 部分原始舊數據
- 19. 鑄造原始INT到數
- 20. 從原始緩衝區數據創建原始圖像
- 21. 如何在Laravel中將原始查詢寫入原始數據?
- 22. typedef - 原始類型到原始類型
- 23. VisualSVN原始/原始文件備份
- 24. 差異原始和非原始線程
- 25. 原始數據幀行的順序是否與原始數據幀行相同?
- 26. 將原始像素數據轉換爲PNG或繪製原始像素數據
- 27. 原始位圖數據/掃描行(鏡像驅動程序原始數據)?
- 28. 從原始數組中排序偶數
- 29. 遞歸函數更改原始數組?
- 30. MoqAutoMocker和原始構造函數參數
是的,如果你碰巧知道素數。 – JJJ
小於或等於...否則你會認爲例如。 4和9是素數。 –
我投票結束這個問題,因爲它不是關於編程。 –