I am writing a prime generator, which is different from anyone in this link
generator in Python generating prime numbers
Here is my code
def sequence():
i = 1
while True:
i += 2
yield i
def prime_generator(n):
i = 2
it = sequence()
while i < n:
it= filter(lambda x: x % i, it)
i = next(it)
yield i
when i run something like
for i in prime_generator(50):
print(i)
It never dump 15, 33, sth like that for me. In a word, It gives me 2 and all odd numbers. what goes wrong here?