P3172
#include<iostream>
using namespace std;
int a[50];
bool check(int s)
{
for(int i=2;i*i<=s;i++)
{
if(s%i==0)
{
return 0;
}
}
return 1;
}
int ans;
int main()
{
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
int h=1<<n;
for(int i=0;i<h;i++)
{
if(__builtin_popcount(i)==m)
{
int e=0;
for(int j=0;j<n;j++)
{
if(i&(1<<i))
{
e+=a[j];
}
}
if(check(e))
{
ans++;
}
}
}
cout<<ans;
return 0;
}
真不知道我这个样例都没有过去的代码是怎样AC一个点的