牛客华为HJ60查找组成一个偶数最接近的两个素数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
num = int(input())

i_list,i_right_list,i_right_list_true = [],[],[]
for i in range(1,num//2+1): # 像这样的 质数 素数 的问题,缩减 for 循环规模关键。
# 找素数(因数只有1和自己)
i_path = []
for j in range(1,i+1):
if i%j == 0: # 是因数
i_path.append(j)
if len(i_path)==2:
i_list.append(i) # 这是 一半位置以下的素数;
i_right_list.append(num-i) # 这是 一半位置以上 可能的素数;还要加以判断。
# 如果一半以上的位置 不是 素数,还要把对应的 i_list 中的数删除掉。
for i in i_right_list:
right_path = []
for j in range(1,i+1):
if i%j == 0:
right_path.append(j)
if len(right_path)!=2:
i_list.pop(i_list.index(num-i))
if len(right_path)==2:
i_right_list_true.append(i)

# print(i_list,i_right_list_true)
print(i_list[-1])
print(i_right_list_true[-1])