#include<stdio.h>
#include<stdlib.h>
int n,k,x[10001],a[10001];
int zs(int x){
if(x==1)return 0;
for(int i=2;i*i<=x;i++)
if(x%i==0)return 0;
return 1;
}
int ok(){
int ans=0;
for(int i=1;i<=k;i++)
ans+=x[i];
// printf("%d\n",ans);
if(zs(ans))return 1;
return 0;
}
int max;
void out(){
max++;
int i;
//for(i=1;i<=k;i++)
// printf("%d%c",x[i],i==k?'\n':' ');
}
int b[1001];
void search(int i,int p){
int j;
for(j=p+1;j<=n;j++){
if(!b[j]){
b[j]=1;
x[i]=a[j];
if(i<k)search(i+1,j);
else if(ok())out();
b[j]=0;
}
}
}
int main(){
int i,j,m;
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
search(1,0);
printf("%d\n",max);
return 0;
}
选数 codevs1008
最新推荐文章于 2018-03-15 15:14:28 发布