程序分析:
一個大於1的正整數,如果除了1和它本身以外,不能被其他正整數整除,就叫素數。
一、參考解法:
判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除,則表明此數不是素數,反之是素數。
from math import sqrt h=0 for m in range(101,201): leap=1 k = int(sqrt(m)) #返回數字的平方根 for i in range(2,k+1):#K+1,表示從2循環到K(包含k) if m % i==0: leap=0 break if leap==1: print('%-4d'%m) h+=1 if h % 10==0: print('') print('The total is %d'%h)
二、參考解法:
使用函數解法
from math import sqrt h=0 def su(n): global h #聲明全局變量 for i in range (2,int(sqrt(n)+1)): if n%i==0: return print('%d'%n) h +=1 if h%10==0: print('') return for j in range(101,201): su(j) print('The total is %d'%h)
三、參考解法:
使用集合解法
l=[ ] for i in range(101,200): for j in range(2,i-1): if i % j==0: break else: #for......else 中,else語句會在 for 不通過 break 跳出而中斷的情況下執行。 l.append(i) print(l) print('總數為:%d'%len(l))
四、參考解法:
使用列表切片解法
import math p=range(101,201) aList=list(p) for i in range(101,201): for j in range(2,int(math.sqrt(i)+1)): if i % j==0: aList.remove(i) break print(aList) print('總數為:%d'%len(aList))