水题一个:
先打印素数表,然后去中,往两边一次选,就可以了,主意可以认为相同的两个素之和等于偶数,比如34=17+17。先前没注意这个WA。
#include<stdio.h>
#include<math.h>
int p[10010];
void get() //打印素数
{
p[1]=1;
for (int i = 4; i <= 10010; i += 2) {
p[i] = 1;
}
int LIM = (int)sqrt(10010.0);
for (int i = 3; i <= LIM; i += 2) {
if (p[i]) continue;
for (int j = i*i; j <= 10010; j += 2*i) {
p[j] = 1;
}
}
}
int main()
{
int n,k;
get();
while(scanf("%d",&n)!=EOF){
k=n/2;
for(int i=0;i<k;i++)
if(p[k-i]!=1&&p[k+i]!=1){
printf("%d %d\n",k-i,k+i);
break;
}
}
return 0;
}