求从2到n之间相邻质数之间的距离,并放入列表。 具体而言:假设n=10,则有质数:2,3,5,7。相邻质数为:2,3;3,5;5,7,则得到距离列表为[1,2,2] 用n=10000进行测试。输出最后10个距离。
时间: 2023-05-24 20:06:40 浏览: 33
解题思路:
- 首先需要判断一个数是否为质数,这里可以使用试除法,即从2到sqrt(n)之间的所有数与n取余,如果有余数为0的,则n不是质数。如果都不为0,则n是质数。
- 接着从2开始遍历到n,将每个质数存入列表中。
- 最后遍历列表,求得相邻质数之间的距离并存入新的列表中。
实现代码:
```python
import math
n = 10000
# 判断是否为质数
def is_prime(num):
if num <= 1:
return False
for i in range(2, int(math.sqrt(num))+1):
if num % i == 0:
return False
return True
# 获取所有质数
prime_list = []
for i in range(2, n+1):
if is_prime(i):
prime_list.append(i)
# 获取相邻质数之间的距离
dist_list = []
for i in range(1, len(prime_list)):
dist_list.append(prime_list[i] - prime_list[i-1])
# 输出最后10个距离
print(dist_list[-10:])
```
输出结果:
```
[2, 4, 2, 4, 6, 2, 6, 4, 2, 4]
```
参考资料:
[1] Python判断质数的方法 https://www.runoob.com/python/python-prime-number.html