#pragma GCC optimize(2)
#include <bits/stdc++.h>
//#include <iostream>
//#include <algorithm>
//#include <cstdio>
//#include <cstring>
#define rush() int T;cin>>T;while(T--)
#define go(a) while(cin>>a)
#define ms(a,b) memset(a,b,sizeof a)
#define E 1e-8
#define sd(a) scanf("%d",&a)
#define sdd(a,b) scanf("%d%d",&a,&b)
#define pd(a) printf("%d\n",a)
#define debug(a) cout<<"*"<<a<<"*"<<endl
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define PAUSE system("pause")
using namespace std;
typedef long long ll;
typedef unsigned ui;
typedef unsigned long long ull;
typedef pair<int,int> Pair;
const int inf=0x7f7f7f7f;
const int mod=100003;
const int N=1e6+5;
int n,m,t;
int i,j,k;
//int a[N];
bool vis[N];
int prime[N],num;
void init()
{
for(int i=2;i<N;i++){
if(!vis[i]){
prime[++num]=i;
for(int j=i*2;j<N;j+=i)
vis[j]=1;
}
}
}
int32_t main()
{
//IOS;
init();
while(~sd(n)){
if(n==0) break;
bool flag=1;
for(i=1;i<=num && flag;i++){
if(vis[n-prime[i]]==0){
printf("%d = %d + %d\n",n,prime[i],n-prime[i]);
flag=0;
}
}
if(flag) printf("Goldbach’s conjecture is wrong.\n");
}
return 0;
}