#P1045. 撤硕管理员

撤硕管理员

本题题面来源于其他平台,不是 ZDZL OJ 原创题

撤硕管理员

题目描述

小A是撤硕管理员。

nn 个同学想要来上撤硕,邪恶的小A作为撤硕管理员,需要收取一些撤硕的使用费用。

费用“因人而异”,每个同学所需费用由数组 aa 表示。如果第 ii 个同学上了撤硕,他就需要向小A支付 aia_i 的费用。

小A从所有同学中选择任意个同学上撤硕,但他希望他最终收到的撤硕使用费用之和是一个质数。求小A的选择方式总数。

只要在一种选择方式中选择了第 ii 个同学,在另一种方案中没有选择第 ii 个同学(1in1 \le i \le n),那么我们就认为这两种方案不同。

输入格式

输入两行,第一行包含一个整数 nn1n121 \le n \le 12),表示同学的数量。

第二行包含 nn 个整数,表示每一个同学的撤硕使用费 aia_i1ai10001 \le a_i \le 1000)。

输出格式

输出一个整数,表示可以使撤硕使用费总和为质数的方案数量。

输入输出样例

输入 #1

4
1 2 2 4

输出 #1

8

说明/提示

样例 1 解释

样例中共有以下 88 种方案:

  • a1+a2=1+2=3a_1 + a_2 = 1 + 2 = 3
  • a1+a3=1+2=3a_1 + a_3 = 1 + 2 = 3
  • a1+a4=1+4=5a_1 + a_4 = 1 + 4 = 5
  • a1+a2+a3=1+2+2=5a_1 + a_2 + a_3 = 1 + 2 + 2 = 5
  • a1+a2+a4=1+2+4=7a_1 + a_2 + a_4 = 1 + 2 + 4 = 7
  • a1+a3+a4=1+2+4=7a_1 + a_3 + a_4 = 1 + 2 + 4 = 7
  • a2=2a_2 = 2
  • a3=2a_3 = 2

数据范围

对于所有测试数据,1n121 \le n \le 121ai10001 \le a_i \le 1000

测试点 nn 的范围
1101 \sim 10 1n121 \le n \le 12