看板 Soft_Job 關於我們 聯絡資訊
我剛剛在想你的問題,我也玩python,show一下我自己寫的東西: https://i.imgur.com/kYe62pG.png
據我所知,算質數只要檢查到n^1/2的floor就好(也就是n開根號再取地板), 這是以前高中數學的內容了。其實你不用檢查到n的,這樣做你可以省下一半 要執行的敘述。 我把n這個數字給十萬,結果不到兩秒就算完了。我的電腦cpu是intel i7-4790 其實也很舊了。n給一百萬,那要花久一點,大概五到六秒鐘。 我想這就是演算法的魅力所在了,要去念數學! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.36.87.82 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1634551260.A.9C3.html
Apache: 原來這id真的會寫代碼 10/18 18:05
s12358972: 看樓上才發現id 10/18 18:41
bill1992: 這寫法超慢 10/18 18:54
Hsins: 了解一下 Sieve of Eratosthenes? 10/18 19:06
ke265379ke: 靠 原來是常識 我數學沒學過這個… 高職數學沒教啊 幹 10/18 19:12
brchiu: PRIMES is in P 10/18 19:23
gaowei16: 常識== 10/18 20:18
pot1234: 跟2*3*7*…*23互質的話再做後面的test,不然慢到哭 10/18 20:57
HoloLens: n - sqrt(n) != n/2... 10/18 21:30
DrTech: 工程法:算一遍記起來,查表 。之後全部 O(1),更快。 10/18 21:35
Hsins: 然後就會被面試官噴了, 要不要什麼東西都做個表, 都 O(1)? 10/18 22:09
MyNion: 樓上,那叫做動態規劃 10/18 22:30
MyNion: 若時間瓶頸點早於空間,那確實用空間換時間是一個Approach 10/18 22:33
MyNion: 另外有個折衷的算法叫布隆過濾器,也挺有趣的 10/18 22:35
leoloveivy: 算過了就別算了 10/18 23:51
viper9709: 推查表XDDD 10/19 00:35