题目链接:寻找素数对
解题思路:打素数表。
#include<stdio.h>
#include<string.h>
#define MAX 10010
bool v[MAX];
int n;
void getPrime(){//筛选素数
int i, j;
memset(v, true, sizeof(v));
for(i = 2; i <= MAX; i++){
for(j = 2; j * i <= MAX; j++){
v[j * i] = false;
}
}
}
int main(){
int i, j;
getPrime();
while(scanf("%d", &n) != EOF){
for(i = n >> 1; i >= 1; i--){
if(v[i] && v[n - i]){
printf("%d %d\n", i, n - i);
break;
}
}
}
return 0;
}