А у Вас значения переменных start и end какие могут быть и требуемая функция как должна использоваться? Это здесь главные вопросы! Например, у тупой нейросети сверху её полудохлая функция в не очень больших диапазонах [start;end] работает в принципе правильно, однако уже в диапазоне [1;1000000] начинает работать слишком медленно, а если end=10000000, то скорость работы замедляется до неприемлемой. Ускорить работу функции можно при помощи решета Эратосфена, о чём Вас уже проинформировали, например, так: from math import sqrt
from time import time
n, Num, t = 10000000, [], time()
Num = [True for k in range(n+1)]
Num[0] = Num[1] = False
for k in range(2, int(sqrt

) + 1):
if Num[k]:
for l in range(2, n // k + 1):
Num[l * k] = False
print(time() - t)
def get_primes_from_range(start, end):
Primes = []
for i in range(start//2*2+1, end + 1, 2):
if Num
: Primes.append(i)
return Primes
while True:
try:
m, n = map(int, input('m n: ').split())
t, A = time(), get_primes_from_range(m, n)
print(time() - t, len(A), 'numbers')
except: continue Так функция работает при любых натуральных start и end из диапазона [1;10000000] достаточно быстро, по крайней мере на порядки быстрее функции, которую Вам подсунула тупая нейросеть, но её ещё можно ускорять и ускорять! Для более широких диапазонов, например, [1;1000000000] такой подход непроизводителен и малоэффективен и надо всё переписывать заново, но только с более чёткими спецификациями поставленной задачи!