提交时间:2026-04-13 22:27:32

运行 ID: 87278

#include <iostream> using namespace std; int n, m; int a[25]; long long ans; bool prime(int x) { if (x == 1 || x != 2 && x % 2 == 0) return 0; for (int i = 3; i * i <= x; i++) if (x % i == 0) return 0; return 1; } void dfs(int k, int s, int x) { if (k == m) { if (prime(s)) ans++; return; } for (int i = x; i < n; i++) dfs(k + 1, s + a[i], i + 1); } int main() { cin >> n >> m; for (int i = 0; i < n; i++) cin >> a[i]; dfs(0, 0, 0); cout << ans << "\n"; return 0; }