python-列印質數
阿新 • • 發佈:2021-06-22
列印質數的核心在於判斷一個數是否為質數,如果是,就列印它。
所以需要先定義一個方法isPrime,它接收一個引數num,來判斷該引數是否為質數
def isPrime(num):
質數有一些特點:
1.都>1
2.除了2都是奇數
3.只能整除1和它本身
所以先判斷它是否>1,如果<=1,肯定不是質數,返回false
繼續判斷是否>2,如果不大於,則一定等於2,是質數,返回true
繼續判斷是否是奇數,如果不是奇數,則一定不是質數,返回false
對於2以上的奇數,需要進行整除運算,此處的遍歷範圍有多種方式,可以從2到n-1,如果想遍歷的少點,可以從2到n/2
用i整除num,如果餘數為0,表示能整除,不是質數,返回false
main方法中,如果要列印50以內的質數,則只需遍歷一次,判斷每個數是否為質數,如果是,則新增到列表中,最終列印列表
程式碼如下:
def isPrime(num): '''是否大於1,是否大於2,是否為奇數,是否有約數''' if num > 1: if num>2: if num%2==1: for i in range(2, int((num-1)/2)): if num%i == 0: returnFalse #有約數 return True #無約數 return False #3以上的偶數 return True #等於2 return False #小於2 if __name__ == '__main__': Plist = [] for i in range(50): if isPrime(i): Plist.append(i) print(Plist)