def euler_sieve_for(n):
if n < 2:
return []
is_composite = [False] * (n + 1)
primes = []
for i in range(2, n + 1):
if not is_composite[i]:
primes.append(i)
___________________________
p = primes[j]
if i * p > n:
break
is_composite[i * p] = True
if i % p == 0:
break
return primes