def linear_sieve(n):
if n < 2:
return []
is_prime = [True] * (n + 1)
is_prime[0] = is_prime[1] = False
primes = []
for i in range(2, n + 1):
if is_prime[i]:
primes.append(i)
for j in range(len(primes)):
p = primes[j]
if i * p > n:
break
——————————————————————————
if i % p == 0:
break
return primes