Skip to content

Instantly share code, notes, and snippets.

@krypton-byte
Created August 5, 2024 11:34
Show Gist options
  • Select an option

  • Save krypton-byte/fd7dbe5d14518cd5dd84abb2590d315e to your computer and use it in GitHub Desktop.

Select an option

Save krypton-byte/fd7dbe5d14518cd5dd84abb2590d315e to your computer and use it in GitHub Desktop.
from typing import Generator, Optional
def primes_iter(max_range: Optional[int] = None) -> Generator[int, None, None]:
primes = [2]
state = 3
yield 2
while True:
not_prime = False
if max_range and state > max_range:
break
for divisor in primes:
if not (state % divisor):
not_prime = True
break
if not not_prime:
primes.append(state)
yield state
state += 1
if __name__ == "__main__":
for i, result in enumerate(primes_iter()):
print(result)
if i == 10:
break
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment