#721. 最小值

    ID: 721 传统题 1000ms 256MiB 尝试: 4 已通过: 2 难度: 3 上传者: 标签>数学数论基础算法枚举2025安居苑小学校选

最小值

题目描述

素数是指大于 11 的自然数,除了 11 和它本身外不能被其他自然数整除。例如 2,3,5,7,11,13,2,3,5,7,11,13,\dots 是素数;4,6,8,9,10,4,6,8,9,10,\dots 是合数。0011 既不是素数也不是合数。

YY 想知道在只允许使用若干给定 个位数字(可重复使用)的情况下,能构成的最小素数是多少。

  • 允许的数字集合给出后,可以任意组成由这些数字构成的正整数(首位不能为多余的前导零,除非数字本身就是 00)。
  • 不需要把集合中的每个数字都使用到,使用集合中的任意一个或多个数字即可组成候选数,例如只允许 3,5{3,5},最小的素数就是 33(而不是 5353)。
  • 若不存在任何由这些数字构成的素数,则输出 1-1

举例:

  • 只允许数字 3{3},最小素数是 33
  • 只允许数字 1{1},最小素数是 1111
  • 允许数字 8,9{8,9},最小素数是 8989
  • 允许数字 2,3,4,5{2,3,4,5},最小素数是 22

输入格式

共两行:

  • 第一行:一个正整数 nn,表示可以使用的数字个数。
  • 第二行:nn 个用空格分隔的个位数字(每个为 0099 的整数),表示允许使用的数字集合。保证这些数字两两互不相同。

输出格式

输出一行:

  • 若存在由给定数字构成的素数,输出其中的最小素数(十进制表示)。
  • 若不存在,输出 -1

输入样例 1

2
3 5

输出样例 1

3

输入样例 2

1
1

输出样例 2

11

输入样例 3

3
8 0 9

输出样例 3

89

输入样例 4

4
2 3 4 5

输出样例 4

2

说明

数据范围

  • 对于所有测试数据,1n101\le n\le 10,且 保证 nn 个数字互不相同。