zoukankan      html  css  js  c++  java
  • java实现第四届蓝桥杯组素数

    组素数

    题目描述
    素数就是不能再进行等分的数。比如:2 3 5 7 11 等。
    9 = 3 * 3 说明它可以3等分,因而不是素数。

    我们国家在1949年建国。如果只给你 1 9 4 9 这4个数字卡片,可以随意摆放它们的先后顺序(但卡片不能倒着摆放啊,我们不是在脑筋急转弯!),那么,你能组成多少个4位的素数呢?
    
    比如:1949,4919 都符合要求。
    

    请你提交:能组成的4位素数的个数,不要罗列这些素数!!

    注意:不要提交解答过程,或其它的辅助说明文字。

    //处理从k开始的排列
    static void f(int [] arr,int k){
    	if(k==4)//前面都已确定
    		check(arr);
    	for(int i=k;i<4;i++){
    		//交换
    		int t = arr[k];
    		arr[k] = arr[i];
    		arr[i] = t;
    		
    		f(arr,k+1);
    		
    		t = arr[k];
    		arr[k] = arr[i];
    		arr[i] = t;
    	}
    }
    static Set<Integer> set = new HashSet<Integer>();
    private static void check(int [] arr){
    	int x = arr[0]*1000+arr[1]*100+arr[2]*10+arr[3];
    	boolean flag = true;
    	for(int i=2;i<=Math.sqrt(x);i++){
    		if(x%i==0){
    			flag=false;
    			break;
    		}
    		if(flag)
    			set.add(x);
    	}
    }
    public static void main(String[] args) {
    	int arr[] = {1,9,4,9};
    	f(arr,0);
    	System.out.println(set.size());
    	}
    
    
  • 相关阅读:
    POJ 1659 Frogs' Neighborhood
    zoj 2913 Bus Pass(BFS)
    ZOJ 1008 Gnome Tetravex(DFS)
    POJ 1562 Oil Deposits (DFS)
    zoj 2165 Red and Black (DFs)poj 1979
    hdu 3954 Level up
    sgu 249 Matrix
    hdu 4417 Super Mario
    SPOJ (BNUOJ) LCM Sum
    hdu 2665 Kth number 划分树
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13077333.html
Copyright © 2011-2022 走看看