2.标题: 组素数

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);
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值