小的代码奉上
#include <bits/stdc++.h>
using namespace std;
bool prime (int x){
if (x == 1) return 0;
for (int i = 2; i * i <= x; i ++)
if (x % i == 0)
return 0;
return 1;
}
int n, k, a[30];
long long ans;
void dfs (int m, int num, int x){
if (m == k){
if (prime(num) != 0) ans ++;
return ;
}
for (int i = x; i < n; i ++){
dfs (m + 1, num + a[i], i + 1);
}
}
signed main() {
cin >> n >> k;
for (int i = 1; i <= n; i ++){
cin >> a[i];
}
dfs (0, 0, 0);
cout << ans;
return 0;
}