Re: [語法] 尋找2~1000的質數 的語法討論

看板C_and_CPP (C/C++)作者 (十三)時間16年前 (2009/09/16 06:55), 編輯推噓1(1010)
留言11則, 4人參與, 最新討論串5/6 (看更多)
※ 引述《suhorng ( )》之銘言: : 標題: Re: [語法] 尋找2~1000的質數 的語法討論 : 時間: Tue Sep 15 19:15:28 2009 : : 一個就是 http://0rz.tw/i2IuV 中的篩法用沒有避開偶數去跟有避開偶數的暴力法比較 : : 如果篩法直接省略 2, 3 的倍數的話速度是很快的 篩到 10^7 在 0.2 秒內完成都沒問題 : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 220.137.65.82 : 推 danielguo:可以試試看我上篇的寫法~ 用質數篩比避開 2, 3 篩還快 09/16 00:42 我把這兩個疑點寫成程式 篩6n+-1的方式和質數篩的方式 http://codepad.org/9CXqG2HO n為2E8 篩完後輸出前1000個質數和最後一個質數 因為我沒有去Q質數篩的程式 所以不太敢說篩6n+-1一定比較快 只能說連結上的程式較快的是篩6n+-1 也許原作者可以試著在語法上改進質數篩的程式 兩個程式的基礎都在於6n+-1 問題在求質數與不求質數的這個動作 Bleed -- World of bleed1979 http://bleed1979.myweb.hinet.net/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.130.143.186

09/16 07:46, , 1F
喔喔~ 一邊篩一般用篩完得到的質數來篩
09/16 07:46, 1F

09/16 07:49, , 2F
嗯, 我的意思是不能單用 6n+-1 來篩
09/16 07:49, 2F

09/16 07:51, , 3F
你的 125 和 130 判斷了是不是質數, 所以兩者效果相近~
09/16 07:51, 3F

09/16 08:17, , 4F
邊篩邊用篩完的質數來篩看來是比較好的作法
09/16 08:17, 4F

09/16 08:18, , 5F
我搞錯 Sieve 的演算法了
09/16 08:18, 5F

09/16 08:48, , 6F
其實因為對照你的寫法我沒有改變後篩的動作
09/16 08:48, 6F

09/16 08:50, , 7F
for (k=i<<1,j=i*i;j<n;j+=k) 應該會再快一點點
09/16 08:50, 7F

09/16 19:12, , 8F
從 i*i 開始會快很多吧Orz
09/16 19:12, 8F

09/19 02:24, , 9F
很抱歉我寫了這篇錯誤的 blog 給各位參考
09/19 02:24, 9F

09/19 02:25, , 10F
在此例中我並沒有建立所謂的質數表是我的疏失
09/19 02:25, 10F

09/19 02:25, , 11F
同時也沒有把"線性篩法"的概念提到程式中
09/19 02:25, 11F
文章代碼(AID): #1Ai1jVGb (C_and_CPP)
文章代碼(AID): #1Ai1jVGb (C_and_CPP)