2.标题: 组素数

来源:互联网 发布:南风知我意2 番外七微 编辑:程序博客网 时间:2024/05/21 19:33
package s4;

import java.util.concurrent.CountDownLatch;

public class test2 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        /*
标题: 组素数
    素数就是不能再进行等分的数。比如:2 3 5 7 11 等。
    9 = 3 * 3 说明它可以3等分,因而不是素数。
    我们国家在1949年建国。如果只给你 1 9 4 9 这4个数字卡片,可以随意摆放它们的先后顺序
    (但卡片不能倒着摆放啊,我们不是在脑筋急转弯!),那么,你能组成多少个4位的素数呢?
    比如:1949,4919 都符合要求。
请你提交:能组成的4位素数的个数,不要罗列这些素数!!
注意:不要提交解答过程,或其它的辅助说明文字。*/
        //1=1;2=9;3=4;4=9
        int sum=0;
        for(int i1=1;i1<=4;i1++)
            for(int i2=1;i2<=4;i2++)
                if(i2!=i1)
                for(int i3=1;i3<=4;i3++)
                    if(i3!=i2&&i3!=i1)
                    for(int i4=1;i4<=4;i4++)
                    if(i4!=i3&&i4!=i2&&i4!=i1)
                    {
                        int a=0;
                        int b=0;
                        int c=0;
                        int d=0;
                        //a
                        if(i1==1){
                            a=1;
                            a=a*1000;
                        }else if(i1==2||i1==4){
                            a=9;
                            a=a*1000;                                                        
                        }else if(i1==3){
                            a=4;
                            a=a*1000;                                                                                
                        }
                        
                        //b
                        if(i2==1){
                            b=1;
                            b=b*100;
                        }else if(i2==2||i2==4){
                            b=9;
                            b=b*100;                                                        
                        }else if(i2==3){
                            b=4;
                            b=b*100;                                                                                
                        }
                        
                        //c
                        if(i3==1){
                            c=1;
                            c=c*10;
                        }else if(i3==2||i3==4){
                            c=9;
                            c=c*10;                                                        
                        }else if(i3==3){
                            c=4;
                            c=c*10;                                                                                
                        }
                        
                        //d
                        if(i4==1){
                            d=1;
                        }else if(i4==2||i4==4){
                            d=9;                                                    
                        }else if(i4==3){
                            d=4;                                                                        
                        }
                        int e=a+b+c+d;
                        int p=0;
                        for(int ii=2;ii<e;ii++){
                            if(e%ii==0){
                                p=1;
                                break;
                                
                            }
                            
                        }    
                        if(p==1){
                            continue;
                        }else{
                            sum++;
                            //System.err.println(e);
                        }
                    }
        System.out.println(sum/2);
    }

}

0 0
原创粉丝点击