範例程式碼 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;
}