Re: [問題] 關於求質數的問題

看板Python作者時間11年前 (2013/01/13 20:45), 編輯推噓2(207)
留言9則, 4人參與, 最新討論串3/5 (看更多)
作者 icps (虹月) 看板 Python 標題 Re: [問題] 十進位數字轉換成任何進位的數字 時間 Sun Jan 13 12:16:40 2013 ─────────────────────────────────────── 以下按照D大建議試做的 (新手寫的很怪見諒XD) from math import sqrt m=int(raw_input('number1:')) n=int(raw_input('number2:')) if n<m: s=n n=m m=s def is_prime(n): for i in range(2, int(sqrt(n) + 1)): if n%i==0: return False return True def max_prime(m,n): while m<n: if is_prime(n): return n if (n-1)%2==1: return max_prime(m,n-1) n=n-2 return -1 print max_prime(m,n) -- 變更之前 number1:10 number2:99999999 99999989 25.7984983845 <===花的時間 -- 變更之後 number1:10 number2:99999999 99999989 0.00457191913143 <===== 秒殺XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.166.93.19 ※ 編輯: icps 來自: 118.166.93.19 (01/14 03:07) ※ 編輯: icps 來自: 118.166.93.19 (01/14 03:08) 最小 def is_prime(n): for i in range(2,int(sqrt(n) + 1)): if n % i==0: return False return True def min_prime(m,n): while m<n: if is_prime(m): return m if (m-1)%2==1: return min_prime(m+1,n) m=m+2 return -1 print min_prime(m,n) ※ 編輯: icps 來自: 118.166.93.19 (01/14 13:50)

01/14 14:35, , 1F
在python, 兩個數的交換可以這麼寫 m,n = n,m
01/14 14:35, 1F

01/14 14:49, , 2F
python 有這麼快? 一億筆範圍的資料0.004 秒? 單位是??
01/14 14:49, 2F

01/14 14:52, , 3F
一億聽起來就很小...
01/14 14:52, 3F

01/14 15:44, , 4F
我單機跑C 光一億次迴圈不做任何事情都要 0.249秒了 orz
01/14 15:44, 4F

01/14 15:45, , 5F
可能是我 compiler 太差了吧 .... C耶 ...
01/14 15:45, 5F

01/14 15:45, , 6F
也不能說不做任何事情 有i++就是了 ...
01/14 15:45, 6F

01/14 16:12, , 7F
感謝y大 又學到一個XD
01/14 16:12, 7F

01/14 16:17, , 8F
這邊是取最大 所以不用跑完 從大的往下減 所以時間才那麼短吧
01/14 16:17, 8F

01/14 16:26, , 9F
喔 sorry 我以為是全部列出來
01/14 16:26, 9F
文章代碼(AID): #1GygnSZ1 (Python)
文章代碼(AID): #1GygnSZ1 (Python)