1949的不同顺序输出

import java.util.HashSet;

import java.util.Iterator;



public class z1949

{

	static HashSet<Integer>set=new HashSet<Integer>();

	public static void main(String[] args)

	{

		int a[]={1,9,4,9};

		order(a,0,a.length-1);

		Iterator <Integer>i=set.iterator();

		while(i.hasNext())

		{

			int num=i.next();

			if(isPrime(num))

				System.out.println(num);

		}

	}

	public static void order(int a[],int start,int end)//递归全排列

	{

		if(start==end)

		{

			set.add(a[0]*1000+a[1]*100+a[2]*10+a[3]);//如果没有重复则添加

		}else

		{

			for(int i=start;i<a.length;i++)//进行递归,把每种情况都执行一遍

			{

				int temp=a[i];

				a[i]=a[start];

				a[start]=temp;

				order(a,start+1,end);

				temp=a[i];

				a[i]=a[start];

				a[start]=temp;

			}

		}

	}

	public static boolean isPrime(int n)//是否是素数

	{

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

		{

			if(n%i==0)

				return false;

		}

		return true;

	}



}

 

你可能感兴趣的:(顺序)