Я пытаюсь вычислить сумму всех простых чисел ниже 2 миллионов, и поскольку я уже написал функцию, чтобы найти простые числа, которые меньше заданного числа, я просто написал новую, которая вызывает более старую функцию и суммируйте элементы в этом списке.Как я могу заставить Python работать быстрее?
Но похоже, что это происходит навсегда. Как я могу ускорить этот код?
def find_primes(n):
"Find the prime numbers below n"
primes=[];
for i in range(2,n):
for fac in range (2,i):
if i!=fac and i%fac == 0:
break
else:
primes.append(i)
return primes
def add_primes(m):
"Sum all the prime numbers below m"
newlist=find_primes(m);
t=sum(newlist);
return t
PS: Я вроде послушника о Python, так что я буду рад, если вы можете хорошо объяснить свои ошибки. Заранее спасибо.
Сделайте свой код более умным вместо этого? –
Кстати, условие 'i! = Fac' равно * always * true, так как' range' не дает аргумент «stop», и поэтому каждый цикл делает бесполезное сравнение (хотя оно должно быть довольно быстрым) , – Bakuriu