Day2:求1000之內的素數app
#素數:除了1和它自己外,不能被其餘天然數整除spa
#判斷素數的方法:1).暴力法:從2到n-1每一個數均整除進行判斷code
2).開根號法:從2到sqrt(n)均作整除判斷(緣由:一個合數必定含有小於本身平方根的質因子)blog
方法1:class
1 prime = [] #存儲素數 2 for m in range(2,1001): 3 state = 1 #建立標籤來判斷狀態 4 for i in range(2,m - 1): 5 if m % i == 0: 6 state = 0 7 break 8 if state == 1: 9 prime.append(m) 10 print("total:%d"%len(prime)) 11 print(prime)
方法2:此時咱們換一種思路,首先能夠判斷一個數是不是素數,而後再對1000之內的數進行遍歷遍歷
1 def is_prime(n): 2 if n == 1: #1和0既不是合數也不是素數 3 return False 4 i = 2 5 while i * i < n: 6 if n % i == 0: 7 return False 8 i += 1 9 return True 10 11 prime = [] 12 i = 1 13 while i <= 1000: 14 if is_prime(i): 15 prime.append(i) 16 i +=1 17 print(prime)