Re: [問題] 作出可判斷質數的程式

看板java作者時間17年前 (2006/09/30 02:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串8/9 (看更多)
【 在 Saren.bbs@bbs.wretch.cc () 的大作中提到: 】 : 試試這個 i從2開始 一直到根號n : for(i=2;i<=sqrt(n);i++) { : if(n%i) { : system.out.println(n+"is prime number!"); : i=n; : } : } : 那它的時間複雜度降到n^(1/2) 對一個數檢查是否為質數是只需 n^(1/2) 沒錯 但是這裡應該用檢查 n 個數來比較才是,所以應該是 n^(3/2) 而你所提的演算法其實是可以改進的, 只要把目前的 for 迴圈的 i 改成只跑已經算出來的質數 (當然,同樣是小於 sqrt(n) ) 也就是前面 TonyQ 所提過的方法 我所提的方法其實也是這樣,雖然看起來是 O(n^2) 但其實與 TonyQ 的運算方式差不多 而在一些瑣碎的地方應該是更為精簡 (這部分就純粹只是個人觀點了) -- NPDA - Non-deterministic PushDown Automata (不確定是否推倒自動機) DPDA - Deterministic PushDown Automata (確定會推倒自動機) 得証: DPDA 效率比較高 ※ 來源:‧資訊傳奇 inf.csie.thu.edu.tw‧[FROM: 59-126-173-31.HINET-IP.hinet.n]
文章代碼(AID): #157Lzh00 (java)
討論串 (同標題文章)
文章代碼(AID): #157Lzh00 (java)