天天看點

python素數判斷代碼_python定義函數判斷素數(優化代碼)

def isPrime1(n):

for i in range(2,n):#對2到n取餘

if n % i == 0:

return False

else:#注意縮進

return True

def isPrime2(n):

for i in range(2,n//2+1):#對2到n/2取餘

if n % i == 0:

return False

else:

return True

def isPrime3(n):

for i in range(2,int(n**0.5)):#對2到根号n取餘

if n % i == 0:

return False

else:

return True

N = 1000#求素數的範圍

strPrime = ""

for j in range(2,N):

if isPrime1(j):#使用isPrime1() isPrime2 isPrime3() isPrime4()函數功能相同效率不同,可以引入time判斷使用的時間

#涉及簡單計時http://www.cnblogs.com/didiaoxiaoguai/p/6684094.html

strPrime = strPrime + str(j) + " "

print(strPrime)

#以下為另一寫法

def isPrime4(n):

for i in range(3,int(n**0.5),2):#将步長設為2

if n % i == 0:

return False

else:

return True

N = 1000 #

strPrime = "2 "

for j in range(3,N,2):

if isPrime4(j):

strPrime = strPrime + str(j) + " "

print(strPrime)