在学堂在线上遇到的一道编程题,这里最容易犯的错误就是,认为6=3+3不算,这样的结果就只有90分。
在此仅作提醒,免得大
class chose{
int[] check_sushu(int n){
int[]num=new int[n];
//所有的偶数都不为素数
for(int i=3;i<n;i+=2)num[i]=1;
num[2]=1;
//所有的能被<=sqrt()整除的数,均不为素数
for(int i=3;i<n;i++)
{
if(num[i]==1){
for(int j=2;j<=Math.sqrt(i)+1;j++)
if(i%j==0){num[i]=0;break;}
if(num[i]==1){
for(int k=2*i;k<n;k+=i)num[k]=0;
}
}
}
int[]num_sushu=new int[num.length];
int count=0;
for(int i=0;i<num.length;i++){
if(num[i]==1)num_sushu[count++]=i;
}
int[]number=new int[count];
for(int i=0;i<count;i++)number[i]=num_sushu[i];
return number;
}
}
public class Main{
//利用筛选法获取素数
public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
int n=in.nextInt();
chose a=new chose();
int []num=a.check_sushu(n);
// for(int i:num)System.out.println(i);
for(int i=0;i<num.length;i++)
for(int j=i;j<num.length;j++)
if(num[i]+num[j]==n)System.out.println(n+"="+num[i]+"+"+num[j]);
}
}
家纠结。。。