#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 30;
int n, k;
int q[N];
int ans;
bool is_prime(int x)
{
for(int i = 2; i * i <= x; i ++)
if(x % i == 0) return false;
return true;
}
void dfs(int cnt, int sum, int str)
{
if(cnt == k)
{
if(is_prime(sum)) ans ++;
return ;
}
for(int i = str; i < n; i ++)
dfs(cnt + 1, sum + q[i], i + 1);
}
int main ()
{
cin >> n >> k;
for(int i = 0; i < n; i ++) cin >> q[i];
dfs(0, 0, 0);
cout << ans << endl;
return 0;
}
P1036 [NOIP2002 普及组] 选数
于 2022-12-18 13:01:59 首次发布