思路: 将10000以内的素数标记出来,就可以解决了;还有一点需要注意比如说是给的是10,素数对就是5 和 5;这一点让我worry了一次。
加油!!!!!
代码:
#include#include #include using namespace std;int a[10005];void cmp(){ for(int i=2;i<=10004;i++) a[i]=1; a[0]=a[1]=0; for(int i=2;i<=5002;i++) { if(a[i]==1) { for(int j=i+i;j<=10004;j=j+i) a[j]=0; } }}int main(){ int n,m,i,j,k; while(cin>>n) { cmp(); m=n/2; for(i=m;i>=2;i--) { if(a[i]==1&&a[n-i]==1) { cout< <<" "< <