Использование 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)
Эта функция работает нормально, и кажется, выдавать правильные результаты , Я хотел бы реализовать функцию in в цикле 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 = []' в цикл. –
, если вы хотите увидеть действительно быструю и умную реализацию решения, пожалуйста, ознакомьтесь с этой [link] (http://stackoverflow.com/questions/1628949/to-find-first-n-prime-numbers-in- питон) – limbo