codevs1008

#include <stdio.h>
#include <math.h>

int n,k,num[25],ans;

bool Check(int n){
  for(int i=2;i<=sqrt(n);i++)
    if(n%i==0)
      return false;
  return true;
}

void DFS(int dex,int sum,int nu){

  if(nu==k&&Check(sum)){
    ans++;
    return ;
  }
  for(int i=dex+1;i<n;i++)
    DFS(i,sum+num[i],nu+1);
}

int main(){

  scanf("%d%d",&n,&k);
  for(int i=0;i<n;i++)
    scanf("%d",&num[i]);
   ans=0;
  DFS(-1,0,0);
  printf("%d\n",ans);
  return 0;
}

你可能感兴趣的:(codevs1008)