def eratosthenes_sieve_for(n):
if n < 2:
return []
is_composite = [False] * (n + 1)
primes = []
for i in range(2, n + 1):
if is_composite[i]:
continue
primes.append(i)
# 内层循环j从i*i开始,步长为i
for j in range(i * i, n + 1, i):
is_composite[j] = True
return primes