经典指数          
原因
1390
浏览数
0
收藏数
 

歌德巴赫猜想说任何一个不小于6的偶数都可以分解为两个奇素数之和。 对此问题扩展,如果一个整数能够表示成两个或多个素数之和,则得到一个素数和分解式。 对于一个给定的整数,输出所有这种素数和分解式。 注意,对于同构的分解只输出一次(比如5只有一个分解2 + 3,而3 + 2是2 + 3的同构分解式 )。

     举报   纠错  
 
切换
1 个答案

    public boolean prime(int n){

        if(n<2) return false;

        if(n==2) return true;

        int len=(int)Math.sqrt(n)+1;

        for(int i=2;i<=len;i++){

            if(n%i==0){

                return false;

            }

        }

        return true;

    }

    public void solve(int n){

        int[] a=new int[n];

        int j=0;

        for(int i=2;i<=n;i++){

            if(prime(i)){

                a[j++]=i;

            }

        }

        int l=1<

        int k;

        for(int f:a)

        System.out.println(f);

        for(int i=0;i

            k=i;

            int m=0;

            int h=0;

            String s="";

            while(k>0){

                if((k&1)>0){

                    m+=a[h];

                    if(s=="") {s=s+a[h];}

                        else s=s+"+"+a[h]; 

                    

                }

                h++;

                k>>=1;

            }

            if(m==n){

                System.out.println(s);

            }

        }

    }

 
切换
撰写答案