Python活力練習Day2

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)
相關文章
相關標籤/搜索