я пытаюсь найти первые 2000 простых чисел
у меня уже есть 1000, но мне нужно найти все остальные с параллельным вычислением
я пытаюсь создать 4 потока, каждый из которых проверить число с 250 числами простых чисел из моего массива из 1000 простых чисел, и если один из потоков получит не простое число, он должен сказать всем потокам остановиться, и если число пройдет все потоки, проверяется, что число добавится к простому массив чисел
на данный момент по какой-то причине функция l oop в моей функции check () не работает
спасибо за помощь
numOfThreads=4
arr =[]
number=1
flag=0
def initArr(arr,number):
while len(arr) != 1000:
number=number+1
count=0
for i in range(2, (number // 2 + 1)):
if number % i == 0:
count = count + 1
break
if count == 0 and number != 1:
arr.append(number)
def check(start,end,number):
global flag
global arr
for num in range (start , end):
if number % arr[num] == 0:
flag=-1
if flag == -1:
continue
initArr(arr,number)
flagstart = 0
threads = list()
count=arr[len(arr)-1]
jobs = []
while len(arr) != 2000:
for index in range(0,numOfThreads):
start=int((index-1) * len(arr) / numOfThreads)
end=int((index-1) * len(arr) / numOfThreads)
if index == 0:
start=0
if index == numOfThreads:
end=len(arr)
thread = threading.Thread(target=check(start,end,count))
jobs.append(thread)
if flagstart == 0:
flagstart = -1
for j in jobs:
j.start()
if flag == 0:
arr.append(count)
elif flag == -1 :
flag=0
count = count+1
'''