Python用無限制數組實現求素數,不限制質數的個數,用篩選的方法!

來源:互聯網
上載者:User

標籤:

#相信很多人能寫出比我還精簡的演算法

#但你能寫出比Python還優雅的演算法嗎?!


import math #動用並 import 匯入 math 函數

A=[]    #定義一個數組並且不初始化,因為不知道這個數組要用多少個元素呢
        # X為被除數, j 為內迴圈變數, A[j]為 用來試除的除數


A.append(1) #A[0]=1 為數組賦初始值,因為要便於迴圈
A.append(2) #A[1]=2


X=1    #2==X 時去執行第一次迴圈
while True: #無限迴圈
    X=X+1
    isPrime=1 #預設 (假設)X 是個質數??  一直到判斷出 X不是質數 那是讓 isPrime=0
    x1=int( math.sqrt(X)  )     #第二個允出準則是: j 大於了 X的平方根(+1)  即x2
                                #第一個允出準則是: A[j]大於了 X 的平方根(即x1)   
    x2=x1+1
    for j in range(1, x2 ):
        if A[j]>(x1 ):
            break
        if 0==X%A[j]:
            isPrime=0
            break
    if 1==isPrime: #終於找到一個X 是質數咯,
        A.append(X) #壓棧,
        print (X)   #並輸出吧!

Python用無限制數組實現求素數,不限制質數的個數,用篩選的方法!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.