#include <iostream>
#include <stdio.h>
#include <cmath>
#include <memory.h>
using namespace std;
int main()
{ bool a[1000005],p[1000005];
int i,j,n;
// freopen("in.txt","r",stdin);
memset(a,true,sizeof(a));
memset(p,false,sizeof(p));
for (i=2;i<1000005;i++)
if (a[i])
{ p[i]=true;
for (j=i;j<1000005;j+=i) a[j]=false;
}
// for (i=1;i<=1000005;i++) if (p[i]) cout<<i<<" ";
cin>>n;
while (n>0)
{
for (i=2;i<=n/2;i++)
if ((p[i])&&(p[n-i]))
{
cout<<n<<" = "<<i<<" + "<<n-i<<endl;
break;
}
cin>>n;
}
return 0;
}
题目大意就是输入一个不小于6的合数,把它表示成两个质数的和,如果有多个,数出相差最大的一组
这题就是简单的枚举+素数判定