提交时间:2024-01-28 16:30:49

运行 ID: 130327

#include <bits/stdc++.h> using namespace std; int a[25]; int n , m , cnt; bool isprime(int x) { for(int i = 2; i <= sqrt(x); i++) if(x % i == 0) return false; return true; } void dfs(int p, int sum, int lst) { if(p == m) { if(isprime(sum) == true) cnt++; } else { for(int i = lst; i <= n; i++) dfs(p + 1 , sum + a[i] ,i + 1); } } signed main() { cin >> n >> m; for(int i = 1; i <= n; i++) cin >> a[i]; dfs(0 , 0 , 1); cout << cnt << endl; return 0; }