My solution is correct - runs fine but I can’t have it run fast enough.
What am I doing wrong?
def fill_primes(list, max):
list.append(2)
ct=3
not_prime=False
for ct in range(3, max+1, 2):
for num in list:
if num > ct**0.5:
not_prime = False
break
if ct%num == 0:
not_prime=True
break
if not_prime == False:
list.append(ct)
not_prime = False
return list
def add_primes(list, num):
last_num=list[-1]+2
for ct in range(last_num, num+1, 2):
not_prime=False
for item in list:
if item > ct**0.5:
not_prime=False
break
if ct%item==0:
not_prime=True
break
if not_prime == False:
list.append(ct)
not_prime = False
return list
def parse_it(numbers):
a_str, b_str = numbers.split()
return int(a_str), int(b_str)
lines=int(input())
line_ct=0
line=[]
while line_ct < lines:
line.append(input())
line_ct=line_ct+1
line_ct=0
list=[]
while line_ct < lines:
a,b=parse_it(line[line_ct])
line_ct=line_ct+1
if line_ct == 1:
list=fill_primes(list, b)
#print(list)
else:
list=add_primes(list, b)
#print(list)
for item in list:
if item >= a and item <= b:
print(item)
if line_ct != lines:
print()