描述
任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。
数据范围:输入的数据满足 4≤𝑛≤1000 4≤n≤1000
输入描述:
输入一个大于2的偶数
输出描述:
从小到大输出两个素数
示例1
输入:
20
输出:
7 13
示例2
输入:
4
输出:
2 2
本题可以采用一分为二的小技巧,以便减少时间复杂度。
import math
def issu(n):
if n==2 or n==3 or n==5:
return True
if n==4:
return False
for i in range(2,round(math.sqrt(n))+1):
if n%i==0:
return False
return True
num=int(input())
middle=num//2
for i in range(num//2):
left=middle-i
right=middle+i
if issu(left) and issu(right):
print(left)
print(right)
break