回覆列表
  • 1 # 範閒不是我

    list = [] #存放計算的結果

    list1 = [] #存放質數

    n = int(input("計算質數2:"))

    for i in range(2,n+1): #範圍在2-n內

    for j in range(2,i):

    list.append(i%j)

    if 0 not in list:

    list1.append(i)

    list=[]

    print(list1)

    正好在研究這個問題,怎麼說呢,感覺這個是正解,runoob網站有這個案例,和樓下類似,但是是錯的,執行你會發現9、15這類都是質數。而質數都定義,簡單來說,就是大於1的自然數,只能被1和自己整除,9、15明顯不是。網站的案例,當自然數為9時,此時透過9%2=1判定9為質數,然後第二次迴圈判定時(此時是9%3=0),此時9又不是質數了。總的來說,但凡像9、15、21這種型別不是質數的奇數,因為第一次都是和2判定無法被整除,所以都會被判定質數。

    正確的做法是,將所有取餘的結果存入列表,判定其中是否有為0的情況,如果有則不是質數,反之則是。

  • 中秋節和大豐收的關聯?
  • 寶寶34天了,突然嗜睡什麼原因?