Задача с codewars не проходит по времени
Решаю задачу с Codewars про простые числа, вот ссылка:
https://www.codewars.com/kata/5519a584a73e70fa570005f5/train/python
Суть задачи -- вернуть генератор простых чисел. Было решено применить решето Эратосфена, и получился такой код:
import numpy as np
import time
class Primes:
@staticmethod
def stream():
num = 15500000
seive = np.zeros(num + 1, dtype=bool)
yield 2
for i in range(3, num + 1, 2):
if not seive[i]:
yield i
for j in range(i ** 2, num + 1, i):
seive[j] = True
start_t = time.time()
a = Primes.stream()
count = 0
for i in a:
try:
count += 1
except:
break
print(time.time() - start_t, ' Потрачено времени')
print(count, ' Количество найденных простых чисел')
Для того чтобы выполнить кату, код должен достаточно быстро сгенерировать все простые числа примерно до 15,5 миллионов. Когда я запускаю тесты на компе, вроде выглядит всё ок (учитывая, что Timed Out в Codewars возникает при выполнении кода дольше 12 секунд):
Однако на претестах в Codewars он выполняется 9 секунд (учитывая, что максимальное простое число с претестов 8017):
А если засылать задачу на тесты, то там вообще всё максимально плохо:
Подскажите пж, что с этим можно сделать


