1
使用Python 3.5.1。Python 3.5.1中的循環問題
我想建立一個while循環,它迭代一個函數,直到一定數量的素數被添加到列表中。我以前寫的一個函數,它接受了一些,評估它是否是一個素數,並將其添加到列表中,如果它是一個素數:
def primelister(n):
if n < 10:
return
else:
l1=[]
l2=[]
ts1=np.arange(1,(n+1),1)
for i in ts1:
if n%i==0:
l1.append(i)
continue
else:
continue
if len(l1) < 3:
l2.append(i)
print(l2)
此功能工作正常,似乎給出了正確的結果。我想在一個while循環中實現函數,其中n的值從10開始,並在每個循環處增加1。循環將繼續進行,直到達到一定數量的素數(即,當列出1000個素數時停止)。
這是我到目前爲止已經試過:
n=10
l1=[]
l2=[]
while numberofprimes < 100:
ts1=np.arange(1,(n+1),1)
for i in ts1:
if n%i==0:
l1.append(i)
continue
if len(l1) < 3:
l2.append(i)
numofprimes=len(l2)
print("Number of primes so far:", numberofprimes)
n = n + 1
環路顯然打破。輸出始終爲1,循環似乎是無限的。所有的幫助將不勝感激。
需要重啓'l1'每次迭代。將'l1 = []'移到循環中。 –
如果你想看到一個真正快速和智能的解決方案的實施,請查看此[鏈接](http://stackoverflow.com/questions/1628949/to-find-first-n-prime-numbers-in-蟒蛇) – limbo