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)
この機能は、[OK]を動作し、正しい結果を与えているようです。 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に過ぎず、ループは無限に見えます。すべての助けに感謝します。
に素数値の数を割り当てながらさらに、あなたはwhileループ条件として
numberofprimes
を使用しています。 'l1 = []'をループに移動します。 –あなたが本当に速くスマートなソリューションの実装を見たいのなら、これをチェックしてください。[link](http://stackoverflow.com/questions/1628949/to-find-first-n-prime-numbers-in- Python) – limbo