2.13 编程验证哥德巴赫猜想。
(1)任何大于2的偶数都可以表示为两个素数之和,如16=3+13,16=5+11。
(2)任何大于5的奇数都可以表示3个素数之和,如11=2+2+7,11=3+3+5。

解决方案 »

  1.   

    import java.util.Scanner;
    public class Lx { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
            int m;
            Scanner s = new Scanner(System.in);
            System.out.print("请输入大于2偶数或者大于5的奇数:");
            m = s.nextInt();
            int prime[]=new int[m];
            prime[0]=2;
            int n=1;
            int i=1;
            int k=3;
            do
            {
             int j = 0;
             while(j<n && k%prime[j]!=0)
             j++;
             if(j==n)
             {
             prime[i]=k;
             i++;
             n++;
             }
             k+=2;
            
            }while(k<m);
            
            if(m%2==0&&m>2)
            {
             System.out.println("你输入的数为偶数!");
             int x=0;
             int y=0;
             boolean isSuccessful;
            for(x=0;x<prime.length;x++)
            {
             isSuccessful = false;
             for(y=0;y<prime.length;y++)
             {
             if(m==prime[x]+prime[y])
             {
             isSuccessful=true;
             break;
             }
            
             else
             continue;
            
             }
             if(isSuccessful)
             break;
            
            }
             int a = prime[x];
             int b = prime[y];
                System.out.println("m两素数相加为:"+a+"+"+b);
            }
            else if(m!=0&&m>5)
             System.out.println("你输入的数为奇数!");
                
            else 
             System.out.println("请输入正确的数:"); } }
    偶数已经解决。请大家帮忙解决  奇数的情况