1. 题目
www.nowcoder.com/questionTer…

2. 考点
- 质数:只能被1和本身整除的数 1不是质数
- 将遍历过的质数使用列表或者字典保存起来,用于num -i in result进行判断
- 获取差值最小的质数组合
核心代码
import math
def is_prime_num(x):
if x == 2:
return True
if x & 1 == 0:
return False
for i in range(3, int(math.sqrt(x)) + 1, 2):
if x % i == 0:
return False
return True
def test(num):
result = []
res = []
for i in range(2, num):
if is_prime_num(i):
result.append(i)
if num - i in result:
res.append(sorted([num - i, i]))
res.sort(key=lambda x: x[1] - x[0])
print(res[0][0])
print(res[0][1])
if __name__ == '__main__':
test(int(input()))