【转】http://blog.youkuaiyun.com/zxy_snow/article/details/6002626
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string.h>
#define MAX 1000001
using namespace std;
int prime[MAX];
void Pri()
{
for(int i=1; i<MAX; i++)
prime[i] = 1;
prime[0] = prime[1] = 0;
for(int i=2; i<MAX/2; i++)
for(int j=2; j*i<MAX; j++)
prime[i*j] = 0;
}
int main(void)
{
Pri();
int n;
while( scanf("%d",&n) && n )
{
int flag = 1;
for(int i=2; i<n/2+1; i++)
{
if( prime[i] && prime[n-i] )
{
printf("%d = %d + %d/n",n,i,n-i);
flag = 0;
break;
}
}
if( flag )
printf("Goldbach's conjecture is wrong./n");
}
return 0;
}