📅  最后修改于: 2023-12-03 15:07:06.804000             🧑  作者: Mango
本算法用于找到具有给定总和和最小绝对差的素数对。
def find_prime_pair(sum: int, diff: int) -> tuple[int, int]:
pass
sum
:整数类型,表示要寻找素数对的总和。diff
:整数类型,表示要寻找素数对的最小绝对差。None
。2
开始,依次尝试每个整数作为第一个素数 p1
。p1
,从 p1 + 1
开始,依次尝试每个整数 p2
,判断 p1
和 p2
是否均为素数,且 p1 + p2 = sum
,|p1 - p2| = diff
。None
。def is_prime(num: int) -> bool:
if num < 2:
return False
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
def find_prime_pair(sum: int, diff: int) -> tuple[int, int]:
for p1 in range(2, sum // 2 + 1):
p2 = sum - p1
if is_prime(p1) and is_prime(p2) and abs(p1 - p2) == diff:
return p1, p2
return None
>>> find_prime_pair(10, 2)
(3, 7)
>>> find_prime_pair(20, 3)
(7, 13)
>>> find_prime_pair(40, 10)
None