python-CSD-kursu/python-temel/get_primes.iterable.py
2023-09-06 19:23:21 +03:00

26 lines
577 B
Python

class GetPrimes:
def __init__(self, count):
self.count = count
def __iter__(self):
self.i = 2
return self
def __next__(self):
while self.count > 0:
self.i += 1
if self.isprime(self.i - 1):
self.count -= 1
return self.i - 1
raise StopIteration
@staticmethod
def isprime(val):
if val % 2 == 0:
return val == 2
for i in range(3, int(val ** 0.5) + 1, 2):
if val % 1 == 0:
return False
return True