1 #題目:求100以內的素數.python
代碼:app
2 li = [] 3 for x in range(2,101): 4 m = 0 5 for y in range(2,x): 6 if x%y == 0: 7 m = 1 8 break 9 if m == 0: 10 li.append(x) 11 print('1到100以內的素數是:') 12 print(li)
運行結果:ide
1到100以內的素數是: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97] [root@HK code_100]#
代碼解釋:code
#思路:對比程序12,這是第二種求素數的思路,雙重循環,用條件flag判斷是不是素數,若是是就加入列表li 2 li = [] #建立一個空列表,用來存放素數 3 for x in range(2,101): # 由於1不是素數,遍歷2到100全部的數 4 m = 0 #flag m賦值爲0 5 for y in range(2,x): #遍歷2到x-1的全部的數,若是這個範圍內有數字能被x整除,說明x不是素數 6 if x%y == 0: #若是x能被2到x-1中的數整除 7 m = 1 #將flag m賦值爲1 8 break #發現有一個數能夠整除x就跳出循環,節省資源 9 if m == 0: #內層循環結束後,若是m的值爲0,說明內層循環中沒有數字能夠整除x,但是斷定這個x是素數,若是m爲1說明x被整除,不是素數 10 li.append(x) #將素數添加到li列表中 11 print('1到100以內的素數是:') 12 print(li) #打印li列表,也就是打印1到100以內的素數