作者:
timmy999 (憤怒a阿宅)
2019-05-04 21:32:10題目: 輸入一數字 判斷它是否為 prime , not prime
或是emirp(若71為質數 17也是質數 則71和17為emirp)
我的程式碼:https://ideone.com/VVsKxB
這題個位數質數和11不算emirp
我覺得我的code沒什麼問題 但是會一直出現time limit exceed
希望能幫我看看是哪邊可以縮短 謝謝
不太熟,不過檢查質數不用檢查到N-1,你可以上網看看檢查質數的方法
作者: allensheng (上將帽子) 2019-05-04 22:00:00
找質數的地方就爆了 下面就沒看了
作者:
CCWck (幹嘛要暱稱)
2019-05-05 00:15:00質數先用篩法建表,第一次加入2、3、5、7建出10以下的質數表,再用來建立100一下的質數表,再建立10000一下的質數表。差不多就夠用建表之後,你只要判斷題目給的數字是否在表裡面就好進入 while scanf之後 re=0沒有重新清掉,不確定是否會有問題若re變很大下面判斷emirp的for就會跑很久
作者:
firejox (Tangent)
2019-05-05 11:55:00用個miller rabin也很快
作者:
hichcock (快樂一整年 ^^~~~)
2019-05-06 09:44:00miller time 快又有效
推miller rabin 缺點是只能驗到32-bit integer 除非用部分compiler內建的128-bit integer
作者:
cutekid (可愛小孩子)
2019-05-06 14:38:00miller跟32bit限制無關,找個GMP之類的工具來用就好
作者:
oToToT (å±å©)
2019-05-11 23:42:00多個Log就可以處理64-bit integer了