#include<bits/stdc++.h>
using namespace std;
int n,m,t,e,a[25],b[25];
double x;
void dfs(int k,int s)
{
if(k>m)
{
t=0;
for(int i=3;i*i<=s;i=i+2)
{
e++;
if(s%i!=0)
t++;
}
if(t==e)
x++;
return ;
}
for(int i=1;i<=n;i++)
{
if(b[i]==0)
{
b[i]=1;
dfs(k+1,s+a[i]);
b[i]=0;
}
}
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
cin>>a[i];
dfs(1,0);
cout<<x;
return 0;
}
只对了#2。
https://www.luogu.com.cn/record/83494968