python 質數
非常好的教學 : https://www.youtube.com/watch?v=2p3kwF04xcA
方法1 :
#1
import math
import time
list=[]
#5
def is_prime_v2(n):
if n==1:
return False
max_divisor = math.floor(math.sqrt(n))
for j in range(2,max_divisor+1):
if n%j==0:
return False
list.append(n)
return True
#2
num = int(input("[質數產生器]請輸入一數字,將自動產出該數前的所有質數值:"))
#3
t0=time.time()
for n in range(1,(num+1)):
#4
print(n,is_prime_v2(n))
t1=time.time()
#6
print(list)
#7
print("共花了時間為{0}秒".format(t1-t0))
方法1 結果圖片 :
方法2 :
#1
import math
import time
list=[]
#5
def is_prime_v2(n):
if n==1:
return False
if n==2:
list.append(n)
return True
if n>2 and n%2==0:
return False
max_divisor = math.floor(math.sqrt(n))
for j in range(3,max_divisor+1,1):
if n%j==0:
return False
list.append(n)
return True
#2
num = int(input("[質數產生器]請輸入一數字,將自動產出該數前的所有質數值:"))
#3
t0=time.time()
for n in range(1,(num+1)):
#4
print(n,is_prime_v2(n))
t1=time.time()
#6
print(list)
#7
print("共花了時間為{0}秒".format(t1-t0))
方法2 結果圖片 : (比較快)
參考網址 : https://openhome.cc/Gossip/Python/ForComprehension.html