範例程式碼 uva543

//uva543
#include <iostream>
#include <vector>
using namespace std;

int main() {
    const int MAXN = 1000005;
    vector<bool> is_prime(MAXN + 1, true);
    is_prime[0] = is_prime[1] = false;
    for (int p = 2; p * p <= MAXN; p++) {
        if (is_prime[p]) {
            for (int j = p * p; j <= MAXN; j += p) {
                is_prime[j] = false;
            }
        }
    }
    int n;
    while (cin >> n && n) {
        bool found = false;
        int a = 0, b = 0;
        for (int i = 3; i <= n / 2; i += 2) {
            if (is_prime[i] && is_prime[n - i]) {
                a = i;
                b = n - i;
                found = true;
                break;
            }
        }

        if (found) {
            cout << n << " = " << a << " + " << b << "\n";
        } else {
            cout << "Goldbach's conjecture is wrong.\n";
        }
    }

    return 0;
}