python定义一个类,实现输出大于m且紧随m的k个素数。
时间: 2024-05-03 14:19:12 浏览: 89
下面是一个实现输出大于m且紧随m的k个素数的Python类的示例代码:
```python
class PrimeNumbers:
def __init__(self, m, k):
self.m = m
self.k = k
self.primes = []
self.get_primes()
def is_prime(self, n):
if n < 2:
return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
return True
def get_primes(self):
n = self.m + 1
while len(self.primes) < self.k:
if self.is_prime(n):
self.primes.append(n)
n += 1
def __str__(self):
return ', '.join(str(p) for p in self.primes)
```
我们首先定义了一个名为 `PrimeNumbers` 的类,并在构造函数中接收参数 `m` 和 `k`。`m` 表示要查找的素数的起点,而 `k` 表示要查找的素数数量。
在 `PrimeNumbers` 类中,我们定义了两个辅助函数:`is_prime` 和 `get_primes`。`is_prime` 函数用于判断一个数是否为素数,而 `get_primes` 函数则用于查找大于 `m` 且紧随 `m` 的 `k` 个素数。
在 `get_primes` 函数中,我们使用一个 `while` 循环来遍历所有大于 `m` 的数,直到找到 `k` 个素数为止。我们使用 `is_prime` 函数来检查每个数是否为素数,如果是素数,则将其添加到 `primes` 列表中。
最后,在 `PrimeNumbers` 类中我们还定义了一个 `__str__` 方法,以便我们能够方便地输出找到的素数列表。
使用该类很简单,只需要创建一个 `PrimeNumbers` 对象,并将 `m` 和 `k` 作为参数传递给它即可。例如,要查找大于 10 且紧随 10 的 5 个素数,可以这样做:
```python
primes = PrimeNumbers(10, 5)
print(primes)
```
输出结果为:`11, 13, 17, 19, 23`。
阅读全文