2216. 红军交通员
1000ms
512MB
简单
深度优先搜索
题目描述
1939年初,新四军驻皖南部队接到紧急命令:必须尽快将一份重要情报送往江北指挥部。
地下交通站有 n 名地下交通员,他们分别负责不同方向的联络任务。每名交通员都有一个代号,对应一个整数:x₁,x₂,…,xₙ。
情报交接规则规定:每次行动必须派出 k 名交通员(k < n),他们的代号之和必须是一个素数(只有 1 和它本身两个因子的数),这样才能打开密码锁,成功交接情报。
问题:交通站站长有多少种不同的选人方案,使得选中的 k 名交通员的代号之和为素数?
输入格式
第一行两个空格隔开的整数 n,k。
第二行 n 个整数,分别为 x₁,x₂,…,xₙ(1 ≤ xᵢ ≤ 10⁴)。
输出格式
输出一个整数,表示种类数。
样例 1
输入 (Input)
4 3 3 7 12 19
输出 (Output)
1
样例 2
输入 (Input)
5 3 2 4 6 8 10
输出 (Output)
0
样例说明
【样例1说明】
n = 4, k = 3,4个交通员代号分别为 3,7,12,19,考虑所有可能的组合及其代号之和:
3 + 7 + 12 = 22(合数)、3 + 7 + 19 = 29(素数)、3 + 12 + 19 = 34(合数)、7 + 12 + 19 = 38(合数),仅1种合法方案。
› 输入 stdin
CtrlShiftEnter
‹ 输出 stdout
错误 stderr
操作成功