# 描述
# 任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。
# 数据范围:输入的数据满足 4 ≤ n ≤ 1000
# 输入描述:
# 输入一个大于2的偶数
# 输出描述:
# 从小到大输出两个素数
# 示例1
# 输入:
# 20
# 输出:
# 7
# 13
def isprime(number):
if number==2:
return True
for index in range(2, number):
if number%index == 0:
return False
return True
number, combine = int(input()), {}
isprime_list = [x for x in range(2, number) if isprime(x)]
for index1 in range(len(isprime_list)):
for index2 in range(index1, len(isprime_list)):
total = isprime_list[index1] + isprime_list[index2]
if number == total:
combine[abs(isprime_list[index1]-isprime_list[index2])] = [isprime_list[index1], isprime_list[index2]]
for number in combine.pop(min(combine.keys())):
print(number)
查找组成一个偶数最接近的两个素数(华为od考试)
最新推荐文章于 2024-06-03 10:27:37 发布