天天看點

每日一小練——求質數

上得廳堂,下得廚房,寫得代碼,翻得圍牆,歡迎來到睿不可擋的每日一小練!

題目:求質數

内容:

試編寫一個程式,找出前N個質數。如果沒有進一步要求,這不是難題。但在此希望從所知的、使用除法的方法中,用最快的辦法來編寫程式。

我的解法:上來沒多想,打開vs2013就敲了起來,問題果然很簡單,分分鐘就超神。。奧,不對就解決了!這個題目确實很簡單,先看看正常解法吧!

實驗結果是

不過題目中要求了思索除法範圍内最快的算法,其實就是在循環中,減少以至不為質數的值的除法運算,比如2的倍數,3的倍數,和5的倍數。這樣循環的遞增就不是按照+1遞增了,而已2,4,2,4....循環加法遞增,這樣可以減少循環三分之二的工作量。

改價算法如下

實驗結果:

每日一小練——求質數

最後要感謝Clover_tjp同學提出的建議,我會在以後的每日一下練中加以改進,歡迎大家提出自己的意見哈!

歡迎大家加入每日一小練,嘿嘿!

每天練一練,日久見功夫,加油!

            -End-

參考文獻:《c語言名題精選百則》

繼續閱讀