0分代码qwq:
#include <bits/stdc++.h>
using namespace std;
long long ans,n,a[50],k;
inline int read () {int s=0,w=0;char c=getchar ();while (!isdigit (c)){w|=(c=='-');c=getchar ();}while (isdigit (c)) {s=(s<<1)+(s<<3)+(c^48);c=getchar ();}return w?-s:s;}
inline void write (int x) {if (x<0) putchar ('-'),x=-x;if (x>9) write (x/10);putchar (x%10|48);}
bool prime (int x) {
if (x<2) return false;
for (int i=2;i*i<=x;i++)
if (x%i==0) return false;
return true;
}
void dfs (int p,int s,int id) {//已选p,和为s,位置为id
if (p==k) {
if (prime (s)) ans++;
return ;
}
for (int i=id+1;i<=n;i++)
dfs (p+1,s+a[i],id+1);
return ;
}
int main() {
n=read (),k=read ();
for (int i=1;i<=n;i++) a[i]=read ();
dfs (0,0,1);
write (ans);
return 0;
}