深搜
2024-06-24 13:39:11
发布于:广东
7阅读
0回复
0点赞
#include <iostream>
#include <cstdio>
using namespace std;
int a[25], n, m;
bool check(int n){
if(n < 2) return 0;
if(n == 2) return 1;
if(n % 2 == 0) return 0;
for(int i = 3; i * i <= n; i += 2){
if(n % i == 0) return 0;
}
return 1;
}
int dfs(int ct, int idx, int val){
if(ct == m) return check(val);
int cnt = 0;
for(int i = idx + 1; i <= n; i++){
cnt += dfs(ct + 1, i, val + a[i]);
}return cnt;
}
int main(){
cin >> n >> m;
for(int i = 1; i <= n; i++){
cin >> a[i];
}cout << dfs(0, 0, 0);
return 0;
}
这里空空如也
有帮助,赞一个