题解python
2024-07-23 11:21:10
发布于:广东
10阅读
0回复
0点赞
这道题也不是很难。
首先先输入:
a = int(input())'''应该不会有人搞错'''
再处理:(我用的是埃氏筛法)
b = [False for i in range(a)]'''创建一个布尔列表'''
for i in range(1,a+1)://循环遍历
if b[i-1] == False and i != 1:'''
*如果是没有标记的当成质数。
*后面我会把1去掉
'''
for j in range(i+i,a+1,i):
b[j-1] = True#把他的倍数全部标记,不包括他本身
输出:
flag = 0#啊啊啊写注释好累
#创建旗帜变量
for i in range(2,a+1):
try:
if b[i-1] == False and b[i+1] == False and i+2<a:#判断它和它前面的数是否是质数
print(i,i+2)
flag = 1
except:#考虑溢出
pass
if flag == 0:
print("empty")
完整代码如下。
a = int(input())
b = [False for i in range(a)]
for i in range(1,a+1):
if b[i-1] == False and i != 1:
for j in range(i+i,a+1,i):
b[j-1] = True
flag = 0
for i in range(2,a+1):
try:
if b[i-1] == False and b[i+1] == False and i+2<a:
print(i,i+2)
flag = 1
except:
pass
if flag == 0:
print("empty")
这里空空如也
有帮助,赞一个