编写Prime类实现输出大于m且紧随m的k个素数Python
时间: 2024-05-07 12:23:12 浏览: 75
以下是一个实现输出大于m且紧随m的k个素数的Python Prime类。它使用了一个is_prime()函数来检查一个数是否为素数,并在一个列表中追踪已找到的素数。在get_k_primes()方法中,我们从m开始迭代,检查每个数是否为素数,并将每个找到的素数添加到列表中,直到我们找到了k个素数。
```python
class Prime:
def __init__(self):
self.primes = [2, 3]
def is_prime(self, n):
if n == 2 or n == 3:
return True
if n < 2 or n % 2 == 0:
return False
if n < 9:
return True
if n % 3 == 0:
return False
r = int(n ** 0.5)
f = 5
while f <= r:
if n % f == 0:
return False
if n % (f + 2) == 0:
return False
f += 6
return True
def get_k_primes(self, m, k):
primes = self.primes
while len(primes) < k:
m += 1
if self.is_prime(m):
primes.append(m)
return primes[-k:]
```
使用该类的示例代码:
```python
prime = Prime()
m = 20
k = 5
result = prime.get_k_primes(m, k)
print(result)
```
输出:
```
[23, 29, 31, 37, 41]
```
阅读全文