蒟蒻求助
样例过不了
#include<iostream>
#include<cmath>
using namespace std;
int f[5000001],a[5000001],sum,n,k;
bool pd(int n){
if (n<2){
return false;
}
else{
for (int i=2;i<=sqrt(n);++i){
if (n%i==0){
return false;
}
}
}
return true;
}
void dfs(int cur,int ans){
if (cur==k){
if (pd(ans)){
sum++;
}
return ;
}
else {
for (int i=1;i<=n;++i){
if (!f[i]){
f[i]=1;
dfs(cur+1,ans+a[i]);
f[i]=0;
}
}
}
}
int main(){
cin>>n>>k;
for (int i=1;i<=n;++i){
cin>>a[i];
}
dfs(1,0);
cout<<sum;
return 0;
}