可以使用穷举法
public static void main(String[] args) {
int q=100000+1;//根据题目的要求确定数组大小
int a[]=new int[q];//用来表示下标数的素数结果
boolean []tag=new boolean[q];//表示当前下表的数是不是素数
int []p=new int[q];//用来储存所有的素数
int c=0;//用来表示素数的下表
int k;//用来表示
for(int i=2;i<q;i++){
if(!tag[i]) {
p[c] = i;
c++;
for (int j = 2 * i; j < q; j = j + i) {
tag[j] = true;
}
}}
for(int i=0;i<c;i++){//从素数数组里面俩俩相加,每次相加得到的数就在a数组对应下标表示的值+1,表示多了一种情况
for(int j=i+1;j<c;j++){
k=p[i]+p[j];
if(k<q){
a[k]++;
}
else {
break;
}
}
}
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()){
int i=scanner.nextInt();
System.out.println(a[i]);
}
scanner.close();
}
}