萌新学dfs一天 求大佬帮助
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll maxn=50009;
ll n,k,b[maxn]={},k2,ans=0,s_ans=0,o[maxn]={};
bool pd(ll k){
if(k==2){
return 1;
}
for(int i=2;i<=sqrt(k);i++){
if(k%i==0){
return 0;
}
}
return 1;
}
void dfs(ll x){
if(x==k){
if(pd(s_ans)){
ans++;
return;
}
else{
return;
}
}
else{
for(int i=1;i<=n;i++){
if(o[i]==0){
s_ans+=b[i];
o[i]=1;
cout<<i<<endl;
dfs(x+1);
s_ans-=b[i];
o[i]=0;
}
}
}
}
int main(){
memset(o,0,sizeof(o));
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>b[i];
}
dfs(1);
cout<<ans;
return 0;
}