Python 3   ||   9 lines,  sieve   ||   T/S: 91%  /  79%
\n\nprimes = [False,False] + [True] * 999_999               #\n                                                        #\nfor i in range(2, 1001):              
\n```\nprimes = [False,False] + [True] * 999_999               #\n                                                        #\nfor i in range(2, 1001):                                # <-- sieve construction\n    if primes[i]:                                       # \n        for j in range(i + i, 1000_000, i):             #\n            primes[j] = False                           #\n\nclass Solution:\n    def findPrimePairs(self, n: int) -> List[List[int]]:\n\n        if n < 4: return []                             # \n                                                        # <-- edge cases\n        if n%2 or n == 4:                               #\n            return [[2,n-2]] if primes[n-2] else []     #\n\n        return [[i, n - i] for i in range(3,(n+3)//2)   # <-- find pairs\n                       if primes[i] and primes[n - i]]  #\n```\n[https://leetcode.com/problems/prime-pairs-with-target-sum/submissions/984727574/](http://)\n\nI could be wrong, but I think that time complexity is *O*(*N* log(log *N*)) and space complexity is *O*(*N*), in which *N* ~ `n`.
['Python3']