```cpp
#include <iostream>
#include <cstdio>
#include <cctype>
#include <set>
typedef long long int lli;
#define mod 1000000007
using namespace std;
lli n,k,ans,arr[25];
set<lli>qwq;
void dfs(int step,int now,int sum)
{
if (step==k)
{
qwq.insert(sum);
return ;//完成加和操作
}
if (n-now+1<k-step||now>n)return ;
//如果剩下的数字不足以加和,就返回
dfs(step,now+1,sum);//不选择这个数字
dfs(step+1,now+1,sum+arr[now]);//选择这个数字
}
inline bool isprime(int n)
{
if (n<=1)return false;
for (register int i=2;i*i<=n;i++)//sqrt(n)>=i
{
if (n%i==0)return false;
}
return true;
}
void judge()
{
ans=qwq.size();
set<lli>::iterator iter;
for (iter=qwq.begin();iter!=qwq.end();iter++)
{
if (!isprime(*iter))
{
ans--;
}
}
}
int main()
{
cin>>n>>k;
for (register int i=1;i<=n;i++)
cin>>arr[i];
dfs(0,1,0);
judge();
cout<<ans;
return 0;
}
```
by Jelly_Goat @ 2019-04-05 10:09:14
~~红名萌新~~
by Achtoria @ 2019-04-05 10:18:07
@[chen_zhang](/space/show?uid=78386)
虽然红,但我搜索就没会......(在线丢人)
咋整啊
by Jelly_Goat @ 2019-04-05 10:29:03
暴力试一下...(~~我也不会搜索~~)
by hjxhjx @ 2019-04-22 21:09:11