// Sieve of Etaros O(nloglogn)
#include <bits/stdc++.h>
using namespace std;
const int N = 1000000;
vector<int> prime;
vector<bool> check(N);
void Eratos() {
check[0] = check[1] = true;
for (int i = 2; i < N; i += 2) check[i] = true;
for (int i = 3; i < N; ++i)
if (!check[i]) {
prime.push_back(i);
for (int j = i * 2; j < N; j += i) check[j] = true;
}
}
int main(void) {
cin.tie(nullptr)->sync_with_stdio(false);
Eratos();
int n, size = prime.size();
while (cin >> n, n) {
for (int i = 0; i < size; ++i) {
int res = n - prime[i];
if (prime[i] > res) break;
if (!check[res]) {
cout << n << " = " << prime[i] << " + " << res << '\n';
goto end;
}
}
cout << "Goldbach's conjecture is wrong.\n";
end:;
}
}
Ly8gU2lldmUgb2YgRXRhcm9zIE8obmxvZ2xvZ24pCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IE4gPSAxMDAwMDAwOwp2ZWN0b3I8aW50PiBwcmltZTsKdmVjdG9yPGJvb2w+IGNoZWNrKE4pOwp2b2lkIEVyYXRvcygpIHsKICAgIGNoZWNrWzBdID0gY2hlY2tbMV0gPSB0cnVlOwoKICAgIGZvciAoaW50IGkgPSAyOyBpIDwgTjsgaSArPSAyKSBjaGVja1tpXSA9IHRydWU7CgogICAgZm9yIChpbnQgaSA9IDM7IGkgPCBOOyArK2kpCiAgICAgICAgaWYgKCFjaGVja1tpXSkgewogICAgICAgICAgICBwcmltZS5wdXNoX2JhY2soaSk7CiAgICAgICAgICAgIGZvciAoaW50IGogPSBpICogMjsgaiA8IE47IGogKz0gaSkgY2hlY2tbal0gPSB0cnVlOwogICAgICAgIH0KfQoKaW50IG1haW4odm9pZCkgewogICAgY2luLnRpZShudWxscHRyKS0+c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIEVyYXRvcygpOwogICAgaW50IG4sIHNpemUgPSBwcmltZS5zaXplKCk7CiAgICB3aGlsZSAoY2luID4+IG4sIG4pIHsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7ICsraSkgewogICAgICAgICAgICBpbnQgcmVzID0gbiAtIHByaW1lW2ldOwoKICAgICAgICAgICAgaWYgKHByaW1lW2ldID4gcmVzKSBicmVhazsKCiAgICAgICAgICAgIGlmICghY2hlY2tbcmVzXSkgewogICAgICAgICAgICAgICAgY291dCA8PCBuIDw8ICIgPSAiIDw8IHByaW1lW2ldIDw8ICIgKyAiIDw8IHJlcyA8PCAnXG4nOwogICAgICAgICAgICAgICAgZ290byBlbmQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY291dCA8PCAiR29sZGJhY2gncyBjb25qZWN0dXJlIGlzIHdyb25nLlxuIjsKICAgIGVuZDo7CiAgICB9Cn0K