Problem Description
把一个偶数拆成两个不同素数的和,有几种拆法呢?
Input
输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束。
Output
对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。
Sample Input
30 26 0
Sample Output
3 2
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int[] prime = new int[1230];
prime[0]=1;prime[1]=2;
boolean tag =true;
int i,j,k;
for(i=3,k=2;i<=10000;i++){tag =true;
for(j=2;j<Math.sqrt(i)+1;j++)
if(i%j==0)
{tag=false;break;}
if(tag)
{prime[k]=i;k++;}
}
int n = in.nextInt();
while(n!=0){
int sum=0,count=0;
for(i=1;prime[i]<n/2;i++){
for(j=1;prime[j]<n&&j<1229;j++)
if(prime[i]+prime[j]==n)
sum++;
}
System.out.println(sum);
n = in.nextInt();
}
}
}