题解
2023-03-18 18:05:00
发布于:上海
58阅读
0回复
0点赞
#include<bits/stdc++.h>
#include<stack>
using namespace std;
typedef long long ll;
const ll N=1e8;
int T,n,m;
int b[25];
int cnt=0;
void dfs(int x,int ans,int temp){
if(ans==m){
int flag=1;
for(int i=2;i<=sqrt(temp);i++){
if(temp%i==0){
flag=0;
break;
}
}
if(flag) cnt++;
return ;
}
for(int i=x;i<n;i++){
dfs(i+1,ans+1,temp+b[i]);
}
}
int main(){
cin>>n>>m;
for(int i=0;i<n;i++){
cin>>b[i];
}
dfs(0,0,0);
cout<<cnt<<endl;
return 0;
}
这里空空如也
有帮助,赞一个