找出2到300中所有的孪生素数。孪生素数就是指相差2的素数对,例如3和5,5和7,11和13等代码
时间: 2024-02-28 20:52:40 浏览: 74
基于生成孪生素数算法的小型评测模型研究.pdf
好的,让我来帮你解答这个问题。我们可以使用筛法找出2到300中的所有素数,然后找出相邻的素数对,判断它们是否相差2,如果是,就是孪生素数对。
以下是使用Python语言实现的代码:
```python
# 筛法找素数
def get_primes(n):
primes = [True] * (n+1)
primes[0] = primes[1] = False
for i in range(2, int(n**0.5)+1):
if primes[i]:
for j in range(i*i, n+1, i):
primes[j] = False
return [i for i in range(2, n+1) if primes[i]]
# 找孪生素数
def get_twin_primes(primes):
twin_primes = []
for i in range(len(primes)-1):
if primes[i+1] - primes[i] == 2:
twin_primes.append((primes[i], primes[i+1]))
return twin_primes
# 找2到300中的孪生素数
primes = get_primes(300)
twin_primes = get_twin_primes(primes)
print(twin_primes)
```
输出结果为:
```
[(3, 5), (5, 7), (11, 13), (17, 19), (29, 31), (41, 43), (59, 61), (71, 73), (101, 103), (107, 109), (137, 139), (149, 151), (179, 181), (191, 193), (197, 199), (227, 229), (239, 241), (269, 271), (281, 283)]
```
所以2到300中的孪生素数共有19对。
阅读全文