Я пытаюсь написать функцию, которая возвращает количество простых чисел, существующих до и включая данное число.
Изначально это был мой код:
def count_primes(num):
prime = [2]
x = 3
if num < 2:
return 0
while x <= num:
for y in prime:
if x%y == 0:
print('not prime')
x+=2
break
else:
prime.append(x)
x += 2
return len(prime)
Как я понимаю, этот код будет работать вечно из-за следующей строки кода:
for y in prime:
if x%y == 0:
print('not prime')
x+=2
break
else:
prime.append(x)
x += 2
Может ли кто-нибудь помочь мне объяснить, почему это закончится бесконечным циклом по сравнению со следующим кодом?
for y in prime:
if x%y == 0:
print('not prime')
x+=2
break
else:
prime.append(x)
x += 2