#include<bits/stdc++.h>
using namespace std;
const int N=1000010;
int primes[N],cnt;
bool visited[N];//false为没有被筛掉,是质数。
void get_primes(int n)
{
for(int i=2;i<=n;i++)
{
if(visited[i]==false) primes[cnt++]=i;
for(int j=0;primes[j]<=n/i;j++)
{
visited[primes[j]*i]=true;
if(i%primes[j]==0)break;
}
}
}
int main()
{
get_primes(N-1);
int n;
while(cin>>n,n)
{
for(int i=1;i<N;i++)
{
int a,b;
a=primes[i];
b=n-a;
if(!visited[b])
{
printf("%d = %d + %d\n",n,a,b);
break;
}
}
}
return 0;
}