#YHM10008. 质数子集

质数子集

选数求和为质数的方案数问题

题目描述

梦梦给出了nn个整数a1,a2,⋯ ,ana_1,a_2,\cdots,a_n,熊熊从中选出kk个数(每个数字至多选一次),使得选出的这kk个数的和恰好为质数,现在需要计算满足这样条件的选数方案一共有多少种。

输入格式

  1. 第一行包含两个用空格隔开的整数nn和kk,分别表示整数的总个数以及要选出的数的个数,其中1≤k≤n≤201\leq k\leq n\leq 20。
  2. 第二行包含nn个整数,分别为a1,a2,⋯ ,ana_1,a_2,\cdots,a_n,每个整数满足1≤ai≤5∗1061\leq a_i\leq 5*10^6

输出格式

输出一个整数,表示选出kk个数其和为质数的选数方案的种类数。

样例

样例输入

4 3
1 2 3 4

样例输出

1

样例解释

选择11、22、44这三个数,它们的和为1+2+4=71 + 2 + 4 = 7,恰好为质数,所以满足条件的选数方案有11种。

数据范围与提示

  1. 对于30%30\%的数据,1≤k≤11\leq k\leq 1。
  2. 对于60%60\%的数据,1≤k≤21\leq k\leq 2。
  3. 对于100%100\%的数据,1≤n≤201\leq n\leq 20,1≤k≤n1\leq k\leq n,1≤ai≤5∗1061\leq a_i\leq 5*10^6。