#include <bits/stdc++.h>
using namespace std;
#define ll long long
// #define int long long int
#define ld long double
#define all(x) x.begin(), x.end()
#define sortall(x) sort(all(x))
#define endl '\n'
#define fast ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
template<class T>
void printC (T Collection)
{
for (auto&i:Collection)
cout << i << " \n";
cout << '\n';
}
/*
* Think twice, code once
* Think of different approaches to tackle a problem: write them down.
* Think of different views of the problem. don't look from only one side.
* don't get stuck in one approach.
* common mistakes: - over_flow
* - out_of_bound index
* - infinite loop
* - corner cases
* - duplication counting.
*/
vector<bool> sieve()
{
vector<bool> isPrime(1e6+1, true);
isPrime[0] = isPrime[1] = false;
for (int i = 2; i * i <= 1e6; ++i)
if (isPrime[i])
for (int j = i * i; j <= 1e6; j += i)
isPrime[j] = false;
return isPrime;
}
void solve()
{
vector<bool> isPrime(sieve());
int q;
while (cin >> q && q != 0)
{
bool flag = true;
for (int i = 3; i < isPrime.size(); i += 2)
{
if (isPrime[i] && isPrime[q-i])
{
cout << q << " = " << i << " + " << q-i << '\n';
flag = false;
break;
}
}
if (flag)
cout << "Goldbach's conjecture is wrong.\n";
}
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
freopen("Errors.txt", "w", stderr);
#endif
fast
int t = 1;
// cin >> t;
while (t--)
{
solve();
if (t) cout << '\n';
}
cout << '\n';
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCi8vICNkZWZpbmUgaW50IGxvbmcgbG9uZyBpbnQKI2RlZmluZSBsZCBsb25nIGRvdWJsZQojZGVmaW5lIGFsbCh4KSB4LmJlZ2luKCksIHguZW5kKCkKI2RlZmluZSBzb3J0YWxsKHgpIHNvcnQoYWxsKHgpKQojZGVmaW5lIGVuZGwgJ1xuJwojZGVmaW5lIGZhc3QgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTtjaW4udGllKDApO2NvdXQudGllKDApOwp0ZW1wbGF0ZTxjbGFzcyBUPgp2b2lkIHByaW50QyAoVCBDb2xsZWN0aW9uKQp7CiAgICBmb3IgKGF1dG8maTpDb2xsZWN0aW9uKQogICAgICAgIGNvdXQgPDwgaSA8PCAiIFxuIjsKICAgIGNvdXQgPDwgJ1xuJzsKfQoKLyoKICogVGhpbmsgdHdpY2UsIGNvZGUgb25jZQogKiBUaGluayBvZiBkaWZmZXJlbnQgYXBwcm9hY2hlcyB0byB0YWNrbGUgYSBwcm9ibGVtOiB3cml0ZSB0aGVtIGRvd24uCiAqIFRoaW5rIG9mIGRpZmZlcmVudCB2aWV3cyBvZiB0aGUgcHJvYmxlbS4gZG9uJ3QgbG9vayBmcm9tIG9ubHkgb25lIHNpZGUuCiAqIGRvbid0IGdldCBzdHVjayBpbiBvbmUgYXBwcm9hY2guCiAqIGNvbW1vbiBtaXN0YWtlczogLSBvdmVyX2Zsb3cKICogICAgICAgICAgICAgICAgICAtIG91dF9vZl9ib3VuZCBpbmRleAogKiAgICAgICAgICAgICAgICAgIC0gaW5maW5pdGUgbG9vcAogKiAgICAgICAgICAgICAgICAgIC0gY29ybmVyIGNhc2VzCiAqICAgICAgICAgICAgICAgICAgLSBkdXBsaWNhdGlvbiBjb3VudGluZy4KKi8KCnZlY3Rvcjxib29sPiBzaWV2ZSgpCnsKICAgIHZlY3Rvcjxib29sPiBpc1ByaW1lKDFlNisxLCB0cnVlKTsKICAgIGlzUHJpbWVbMF0gPSBpc1ByaW1lWzFdID0gZmFsc2U7CiAgICBmb3IgKGludCBpID0gMjsgaSAqIGkgPD0gMWU2OyArK2kpCiAgICAgICAgaWYgKGlzUHJpbWVbaV0pCiAgICAgICAgICAgIGZvciAoaW50IGogPSBpICogaTsgaiA8PSAxZTY7IGogKz0gaSkKICAgICAgICAgICAgICAgIGlzUHJpbWVbal0gPSBmYWxzZTsKICAgIHJldHVybiBpc1ByaW1lOwp9Cgp2b2lkIHNvbHZlKCkKewogICAgdmVjdG9yPGJvb2w+IGlzUHJpbWUoc2lldmUoKSk7CiAgICBpbnQgcTsKICAgIHdoaWxlIChjaW4gPj4gcSAmJiBxICE9IDApCiAgICB7CiAgICAgICAgYm9vbCBmbGFnID0gdHJ1ZTsKICAgICAgICBmb3IgKGludCBpID0gMzsgaSA8IGlzUHJpbWUuc2l6ZSgpOyBpICs9IDIpCiAgICAgICAgewogICAgICAgICAgICBpZiAoaXNQcmltZVtpXSAmJiBpc1ByaW1lW3EtaV0pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNvdXQgPDwgcSA8PCAiID0gIiA8PCBpIDw8ICIgKyAiIDw8IHEtaSA8PCAnXG4nOwogICAgICAgICAgICAgICAgZmxhZyA9IGZhbHNlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKGZsYWcpCiAgICAgICAgICAgIGNvdXQgPDwgIkdvbGRiYWNoJ3MgY29uamVjdHVyZSBpcyB3cm9uZy5cbiI7CiAgICB9Cn0KCmludCBtYWluKCkKewojaWZuZGVmIE9OTElORV9KVURHRQogICAgZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CiAgICBmcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwogICAgZnJlb3BlbigiRXJyb3JzLnR4dCIsICJ3Iiwgc3RkZXJyKTsKI2VuZGlmCiAgICBmYXN0CiAgICBpbnQgdCA9IDE7CiAgICAvLyBjaW4gPj4gdDsKICAgIHdoaWxlICh0LS0pCiAgICB7CiAgICAgICAgc29sdmUoKTsKICAgICAgICBpZiAodCkgY291dCA8PCAnXG4nOwogICAgfQogICAgY291dCA8PCAnXG4nOwogICAgcmV0dXJuIDA7Cn0=