上代码:
#include <iostream>
#include <map>
using namespace std;
int n,a[25],sum,m;
bool d1(int n)
{
for(int i = 2;i * i<=n;i ++)
{
if(n%i==0)
{
return false;
}
}
return true;
}
void dfs(int d,int cnt,int x)
{
if(d>n)
{
if(d1(cnt)&&x==m)
{
sum ++;
}
return ;
}
dfs(d+1,cnt+a[d],x+1);
dfs(d+1,cnt,x);
return ;
}
int main()
{
cin >> n >> m;
for(int i = 1;i <= n;i ++)
{
cin >> a[i];
}
dfs(1,0,0);
cout << sum;
return 0;
}
为啥错啊?