# prime numbers algorithm - Sieve of Eratosthenes
def primesBelowN(n):
if n > 2:
yield 2
if n > 3:
arr = [1] * (n-1)
p = 2
while p < n-1:
start = inc = p
while start + inc < n:
start += inc
arr[start-1] = 0
# print(arr)
found = False
for i in range(p+1, n):
if arr[i-1]:
found = True
p = i
break
if not found:
break
# print(p)
yield p
# Memory Error for large values
print(list(primesBelowN(150)))