首页 > 编程知识 正文

JAVA全排列(java全排列算法)

时间:2023-05-03 09:18:54 阅读:121120 作者:4735

java全数组算法判断素数是不能再等分的数。 例如,2 3 5 7 11等。 9=3 * 3表示可以三等分,所以不是素数。

我们的国家是1949年建国的。 只给1 9 4 9这4个数字卡,就可以自由排列优先顺序。 (但是,卡不能颠倒排列

啊,我们不是脑子在急转弯! 那么,你能做多少个4位数的素数?

例如,1949、4919都符合要求。

请提交:可以配置的4位素数的数量,请不要排列这些素数!

public class sushu { publicstaticvoidmain (string [ ] args ) Sushu=newSushu ); setintegerset=sushu.method1(new int [ ] { 1,9,4,9 }; system.out.println(set.size ) ); system.out.println (set.tostring ); //方式一:循环嵌套publicsetintegermethod1(int [ ] arr ) { SetInteger set=new HashSet; for(inta=0; a arr.length; a ) for(intb=0; b arr.length; b ) if(b==a ) continue;//两张卡不能同时占据一个坑位置for(intc=0; c arr.length; c ) if(c==a||c==b ) continue; for(intd=0; d arr.length; d ) if(d==a|||d==b||d==c ) continue; intnum=arr [ a ] * 1000 arr [ b ] * 100 arr [ c ] * 10 arr [ d ]; //该数可以表示为布尔标志=真; //首先,假设当前数为素数for(intI=2)。 I=math.sqrt(num; I )//本来应该来自2-num-1,但实际上可以只判断处方,减少循环数if (num % I==0) ) { flag=false; //素数标志的位置不是flase,而是结束循环break } if (flag==true ) set.add ) num; //质数仍然在set中,很重} } } }返回集; }//方式:全数组固定算法class a { staticsetintegerset=newhashsetinteger (); 公共语音(字符串(args ) int ) arr=新int ) ) 1、9、4、9 }; 完全排序(arr,0,arr.length-1 ); system.out.println(set.size ) ); } publicstaticvoidfullsort (int [ ] arr,int start,int end ) if ) start==end ) intx=arr [0] * 1000 arr [1] * 100 boll //假设素数为for (inti=2; I=math.sqrt(x; I ) if(x%I==0) { isSushu=false; 布雷克; }if(isSushu==true ) )/system.out.println ) x; set.add(x; }for(intI=start; i=end; I ) swap(arr,start,I ); 完全排序(arr,start 1,end ); swap(arr,start,I ); }publicstaticvoidswap(int[]arr,int i,int j ) ) { int temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。