python使用列表實現篩選法求素數


使用列表實現篩選法求素數

實驗目的

  • 了解素數的定義
  • 理解篩選法求解素數的原理
  • 理解切片操作
  • 熟練運行內置函數enumerate()
  • 熟練運用內置函數filter()
  • 理解序列解包的工作原理
  • 熟悉選擇結構和循環結構

實驗內容

  • 編寫程序,輸入一個大於2的自然數,然后輸出小於該數字的所有素數組成列表。
import math
'''首先是進行素數判斷,使用的篩選法構造函數isPrime'''
def isPrime(n):
    m = math.ceil(math.sqrt(n)+1)
    for i in range(2, m):
        if n%i == 0 and i<n:
            return False
            break
    else:
        return True

n = input("請輸入一個大於2的自然數:")
n = int(n)
'''由於0,1不是素數但能通過isPrime()函數測試 故而將范圍設置為range(2, n + 1 )以求實現[2, n]取值'''
list(filter(isPrime, [i for i in range(2, n+1)]))
請輸入一個大於2的自然數:50
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM