题解:写个素数筛法,然后暴力枚举判断
#include<iostream>
#include<cmath>
#include<cstdio>
#define N 1000001
using namespace std;
bool a[N];
void primelist()
{
a[0]=a[1]=1;
for(int i=2;i<N;i++)
if(!a[i])
for(int j=i*2;j<N;j+=i)
a[j]=1;
}
int main()
{
int n;
primelist();
while(scanf("%d",&n))
{
if(n==0)
break;
for(int i=0;i<=n;i++)
{
if(!a[i]&&!a[n-i])
{
printf("%d = %d + %d\n",n,i,n-i);
break;
}
}
}
return 0;
}