编写程序找出1—100的所有孪生素数
时间: 2023-11-11 17:02:12 浏览: 43
好的,以下是 Python 代码实现:
``` python
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
return True
def get_twin_primes(start, end):
twin_primes = []
for i in range(start, end-1):
if is_prime(i) and is_prime(i+2):
twin_primes.append((i, i+2))
return twin_primes
print(get_twin_primes(1, 100))
```
输出结果:
```
[(3, 5), (5, 7), (11, 13), (17, 19), (29, 31), (41, 43), (59, 61), (71, 73)]
```
这里定义了两个函数,`is_prime(n)` 判断一个数是否为素数,`get_twin_primes(start, end)` 获取 `start` 到 `end` 范围内的孪生素数。最后输出 1-100 范围内的孪生素数。
相关问题
编写程序,找出1000以内的所有孪生素数对。要求: 结果放在列表中 判断素数用函数实现
下面是Python代码实现:
```python
# 定义判断素数的函数
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
return True
# 查找孪生素数对
twins = []
for i in range(2, 1001):
if is_prime(i) and is_prime(i + 2):
twins.append((i, i+2))
print(twins)
```
输出结果为:
```
[(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), (311, 313), (347, 349), (419, 421), (431, 433), (461, 463), (521, 523), (569, 571), (599, 601), (617, 619), (641, 643), (659, 661), (809, 811), (821, 823), (827, 829), (857, 859), (881, 883)]
```
利用上题中判断素数的函数,编写程序找出 1~100 之间的所有孪生素数(若两个素数之 差为 2,则这两个素数就是一对孪生素数)。例如:3 和 5、5 和 7、11 和 13 等都是孪生素 数
以下是使用 Python 实现的代码:
```python
def is_prime(n):
"""
判断一个数是否为素数
"""
if n <= 1:
return False
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
return True
for i in range(1, 99):
if is_prime(i) and is_prime(i+2):
print(f"{i}和{i+2}是一对孪生素数")
```
输出结果:
```
3和5是一对孪生素数
5和7是一对孪生素数
11和13是一对孪生素数
17和19是一对孪生素数
29和31是一对孪生素数
41和43是一对孪生素数
59和61是一对孪生素数
71和73是一对孪生素数
```
可以看到,程序成功找出了 1~100 之间的所有孪生素数。