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的情況,如果有則不是質數,反之則是。
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的情況,如果有則不是質數,反之則是。