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

}

 

posted @ 2015-06-02 22:01  飘逸110  阅读(164)  评论(0编辑  收藏  举报