classSolution: deffindPrimePairs(self, n: int) -> List[List[int]]: deff(x): if (x == 2) or (x == 3): returnTrue if (x % 6 != 1) and (x % 6 != 5): returnFalse for i inrange(5, int(x ** 0.5) + 1, 6): if (x % i == 0) or (x % (i + 2) == 0): returnFalse returnTrue
# n = 3 # se = set([i for i in range(2,n) if f(i)]) ans = [] for l inrange(2,n): r = n - l if l == 2or ( l%2==1and r%2==1): if l <= r and f(l) and f(r): ans.append([l,r]) return ans
# 预处理 MX = 10 ** 6 + 1 primes = [] is_prime = [True] * MX for i inrange(2, MX): if is_prime[i]: primes.append(i) for j inrange(i * i, MX, i): is_prime[j] = False
classSolution: deffindPrimePairs(self, n: int) -> List[List[int]]: if n % 2: return [[2, n - 2]] if n > 4and is_prime[n - 2] else [] ans = [] for x in primes: y = n - x if y < x: break if is_prime[y]: ans.append([x, y]) return ans