素数筛法的水题 知道怎么筛就能做出来 在从3开始遍历那个表就行了 放假是不是不让做这种水题= =
#include <iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define max 1000010
bool isprime[max];
void getprime()
{
long long i,j;
memset(isprime,1,sizeof(isprime));
isprime[1]=0;
for(i=2; i<max; i++)
if(isprime[i])
for(j=i*i; j<max; j+=i)
isprime[j]=0;
}
int main()
{
int n,a;
getprime();
while(~scanf("%d",&n)&&n)
{
for(a=3; a<=n/2; a++)
if(isprime[a]&&isprime[n-a])
break;
printf("%d = %d + %d\n",n,a,n-a);
}
return 0;
}