從這個開始:def prime_gen(n):
primes = [2]
a = 2
while a < n:
counter = 0
for i in primes:
if a % i == 0:
counter += 1
if counter == 0:
else:
counter = 0
a = a + 1
print primes
你真的需要埃爾斯分店嗎?沒有
^$你需要櫃檯嗎?不!在def prime_gen(n):
primes = [2]
a = 2
while a < n:
for i in primes:
if a % i == 0:
break
a = a + 1
print primes
你需要檢查一下是否有更大的面積嗎?沒有def prime_gen(n):
primes = [2]
a = 3
while a < n:
sqrta = sqrt(a+1)
for i in primes:
if i >= sqrta:
break
if a % i == 0:
break
a = a + 1
print primes
是否確實要手動增加a?在def prime_gen(n):
primes = [2]
for a in range(3,n):
sqrta = sqrt(a+1)
for i in primes:
if i >= sqrta:
break
if a % i == 0:
break
這是一些基本的重構,應該會自動從你的手指中流出。在
然後測試重構後的**,檢視是否有錯誤並修復它:def prime_gen(n):
primes = [2]
for a in range(3,n):
sqrta = sqrt(a+1)
isprime = true
for i in primes:
if i >= sqrta:
break
if a % i == 0:
isprime = false
break
if(isprime):
return primes
最後去掉了isprime標誌:def prime_gen(n):
primes = [2]
for a in range(3,n):
sqrta = sqrt(a+1)
for i in primes:
if i >= sqrta:
break
if a % i == 0:
break
return primes
現在你完成了!在
python素數演算法 Python素數檢測的方法
因子檢測 檢測因子,時間複雜度o n 1 2 def is prime n if n 2 return false for i in xrange 2,int n 0.5 1 if n i 0 return false return true 費馬小定理 如果n是乙個素數,a是小於n的任意正整數,那...
python中素數怎麼求 用python怎麼求素數
如何用python求100以內的素數?質數 primenumber 又稱素數,有無限個。質數定義為在大於1的自然數中,除了1和它本身以外不再有其他因數的數稱為質數,如 2 3 5 7 11 13 17 19。方法一,用for迴圈來實現num i 2for i in range 2,100 j 2fo...
迴圈素數 Python
來自網易雲課堂python程式設計第三週作業的一道題 題目內容 數字197可以被稱為迴圈素數,因為197的三個數字迴圈移位後的數字 197,971,719均為素數。100以內這樣的數字包括13個,2,3,5,7,11,13,17,31,37,71,73,79,97。要求任意正整數n以內一共有多少個這...