游客 Signup | Login
中文 | En

3194 - Jesse's Code

Jesse是个数学迷,他最喜欢研究“哥德巴赫猜想”,因此他的计算机密码也都采用素数。 但一直用同一个密码是不安全的,所以他要经常更换他的密码。但他只允许自己的密码中出现某些数字,且密码的每一位都不相同。比如1 2 4,则有6种情况124 142 214 241 412 421。其中241 和 421为素数。为了获得他的密码(他的机器上存放了第4届舜禹杯大学生程序设计竞赛的题目!),需要生成一个字典来帮助我们破解。 请你来编写一个程序帮助我们(因为众所周知的原因我们迫切需要获得这些题目)。

Input

  • Line 1:密码的位数n (1 ≤ n ≤ 9)。
  • Line 2:1->n个不重复的整数序列 (1 ≤ x[i] ≤ 9).
输入0结束。

Output

按从小到大顺序输出所有的结果。 如果一个结果也没有,输出“NONE”。 每组数据后面跟随一个空行。

Examples

Input

3
1 2 4
0

Output

241
421

Solution C++

#include <bits/stdc++.h>
using namespace std;

int n, a[10];

bool isP(int x) {
	if (x < 2) return false;
	for (long long i = 2; i * i <= x; i ++) {
		if (x % i == 0) return false;
	}
	return true;
}

int main() {
	while (cin >> n && n != 0) {
		for (int i = 1; i <= n; i ++) cin >> a[i];
		sort(a + 1, a + n + 1);
		
		bool flag = false;
		do {
			int num = 0;
			for (int i = 1; i <= n; i ++) num = num * 10 + a[i];
			
			if (isP(num)) {
				cout << num << endl;
				flag = true;
			}
			
		}while (next_permutation(a + 1, a + 1 + n));
		
		if (!flag) puts("NONE");
	}
	
	return 0;
}

/*
19880229不是闰年 
*/
Time Limit 1 second
Memory Limit 64 MB
Discuss Stats
上一题 下一题