easy solution
IntuitionApproachComplexity
Time complexity:

Space complexity:
Code
# Intuition
<!-- Describe your first thoughts on how to solve this problem. -->

# Approach
<!-- Describe your approach to solving the problem. -->

# Complexity
- Time complexity:
<!-- Add your time complexity here, e.g. $$O(n)$$ -->

- Space complexity:
<!-- Add your space complexity here, e.g. $$O(n)$$ -->

# Code
```cpp []
class Solution {
public:
// Function to find all prime numbers up to n using the Sieve of Eratosthenes
vector<int> sieve(int n) {
    vector<bool> is_prime(n + 1, true);
    vector<int> primes;

    is_prime[0] = is_prime[1] = false;

    for (int i = 2; i <= n; ++i) {
        if (is_prime[i]) {
            primes.push_back(i);
            for (int j = i * 2; j <= n; j += i) {
                is_prime[j] = false;
            }
        }
    }

    return primes;
}

// Function to find pairs of prime numbers that sum up to n
vector<vector<int>> findPrimePairs(int n) {
    vector<int> primes = sieve(n);
    vector<vector<int>> result;

    int left = 0;
    int right = primes.size() - 1;

    while (left <= right) {
        int sum = primes[left] + primes[right];
        if (sum == n) {
            result.push_back({primes[left], primes[right]});
            ++left;
            --right;
        } else if (sum < n) {
            ++left;
        } else {
            --right;
        }
    }

    return result;
}

};
```
['Enumeration', 'C++']