我寫了下面的代碼來找到N個素數。但是,我無法將它存儲在列表中。Python程序將首N個素數存儲在列表中?
def prime(n):
global count
s=0
flag=0
ls=[]
for i in range(2,n/2+1):
if(n%i==0):
flag=1
break
if(flag==0):
print n
ls.append(n)
count=count+1
print ls
# main pro
n=input("Enter the number of prime numbers to be displayed: ")
print"The prime numbers are:"
count=0
x=2
while(count<n):
prime(x)
x+=1
我的期望輸出應該是:
Enter the number of prime numbers to be displayed: 5
[2, 3, 5, 7, 11]
但是當我運行該程序,我得到的輸出:
Enter the number of prime numbers to be displayed: 5
The prime numbers are:
2
[2]
3
[3]
[]
5
[5]
[]
7
[7]
[]
[]
[]
11
[11]
如何添加素數到一個列表,而不改變上面的代碼? 我應該在後面追加元素嗎?我是Python新手,所有幫助表示感謝!謝謝!
聲明'ls'全球範圍內,你在每次迭代重建它。 –
但是我正在輸出爲: [2] [2,3] [2,3] [2,3,5] [2,3,5] [2,3,5,7] [2,3,5,7] [2,3,5,7] [2,3,5,7] [2,3,5,7,11] 如何在結束? –
非常感謝! –