在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Python/ 【python小白】自制素?cái)?shù)檢測(cè)器,覺(jué)得運(yùn)算速度很慢,想問(wèn)問(wèn)是代碼有問(wèn)題還是什么

【python小白】自制素?cái)?shù)檢測(cè)器,覺(jué)得運(yùn)算速度很慢,想問(wèn)問(wèn)是代碼有問(wèn)題還是什么其他原因?

clipboard.png

代碼如圖,親測(cè)有效:
但是有個(gè)問(wèn)題,一旦我輸入的數(shù)字,稍微大一點(diǎn)點(diǎn),運(yùn)行速度就很慢。
舉個(gè)例子,我輸入:10000000000,然后整個(gè)屏幕就卡住不動(dòng)很久。
按理說(shuō)不應(yīng)該啊,理由如下:

clipboard.png

為了節(jié)省計(jì)算資源,我這個(gè)地方特地加了這一段,一旦遇到某個(gè)n可以整除N,循環(huán)立馬終止,不用一個(gè)一個(gè)數(shù)字試過(guò)去。那么像10000000000這樣的很明顯不是素?cái)?shù)的數(shù)字,一旦n到5或者到10,馬上就已經(jīng)不符合素?cái)?shù)的條件了,程序應(yīng)該立馬終止。為什么會(huì)一直運(yùn)行個(gè)不停呢?

順便說(shuō)一句,本人用的是MAC當(dāng)中的烏班圖虛擬機(jī),雖然是虛擬機(jī),但是這個(gè)速度也太慢了點(diǎn),在我的理解,這種簡(jiǎn)單的題目,給計(jì)算機(jī)應(yīng)該是一秒出答案的啊。 除非是遇到超級(jí)大的素?cái)?shù),需要從0到N一個(gè)一個(gè)數(shù)字算過(guò)去,才會(huì)很慢,一般的應(yīng)該一下子搞定的。

回答
編輯回答
蔚藍(lán)色
  1. 符合那個(gè)elif N%n == 0 并不會(huì)跳出for循環(huán) ;
  2. 由數(shù)學(xué)辦法可以證明, 測(cè)試一個(gè)數(shù)(n)是不是素?cái)?shù), 實(shí)際整除的范圍就是2 - n^1/2 ;
  3. range(2,N-1) 實(shí)際上是生產(chǎn)了2 ~ N-2 的數(shù)據(jù), 并不是2 ~ N ;
  4. i 的作用似乎我沒(méi)太看懂...
2018年5月14日 07:23
編輯回答
忘了我

10000000000這樣的很明顯不是素?cái)?shù)的數(shù)字
他還在計(jì)算1到10000000000之間的所有素?cái)?shù)
不是只計(jì)算10000000000這一個(gè)

2017年10月14日 18:01
編輯回答
懶洋洋

k = 0 之后,沒(méi)出 for n in range 循環(huán)啊

2018年1月4日 13:09