1 条题解
-
0
#include <bits/stdc++.h> using namespace std; int n, k, a[22], ans; bool is_prime(int a) { if (a < 2) return false; for (int i = 2; i *i <= a; i ++) if (a % i == 0) return false; return true; } void dfs(int pre, int cnt, int tmp) { if (cnt >= k) { if (is_prime(tmp)) ans ++; return; } for (int i = pre+1; i <= n-k+cnt; i ++) { dfs(i, cnt+1, tmp+a[i]); } } int main() { cin >> n >> k; for (int i = 0; i < n; i ++) cin >> a[i]; dfs(-1, 0, 0); cout << ans << endl; return 0; }
- 1
信息
- ID
- 513
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 10
- 标签
- 递交数
- 2
- 已通过
- 1
- 上传者