一、题目
二、示例
三、代码
import math
def isPrime(num): # 定义一个素数判断函数
for item in range(2, int(math.sqrt(num)) + 1):
if num % item == 0:
return False
return True
while True:
try:
even = int(input())
for item in range(2, even // 2 + 1):
if isPrime(item) and isPrime(even - item): # 从两端向中间逼近
left = item
right = even - item
print(left)
print(right)
except:
break
四、算法说明
-
定义一个判断素数的函数
isPrime(num)
:
素数一般指质数,判断从 2 到 n u m \sqrt{num} num 之间的数能否整除 n u m num num,如果不能,则判断 n u m num num 为素数。 -
寻找合适的素数对:
采用从两端向中间逼近的原则,将偶数从中间分开,用函数isPrime(num)
判断两边的数item
和(even - item)
是否为素数,如果是素数,更新左右两边的素数对left
和right
,由于从两边向中间更新,因此,最后留下的素数对之间的差值最小,打印输出。
胡萝卜
2022年1月25日21:56:09
我不知道将去向何方,但我已在路上! |
---|
时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! |