素数筛法的水题 知道怎么筛就能做出来 在从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; }