程序功能:获取[start,end)区间的质数;
from math import sqrt
class PrimeList:
def __init__(self, start, end) :
self.start = start
self.end = end
def is_prime(self, num) :
if num < 2 :
return False
for v in (2, sqrt(num) + 1) :
if num % v == 0 :
return False
return True
def __iter__(self) :
for i in range(self.start, self.end + 1) :
if self.is_prime(i) :
yield i
for x in PrimeList(10, 20) :
print(x)
运行结果:
11
13
15
17
19
[Finished in 0.3s]