#1 WA,#2~#5 AC:
#include<iostream>
#include<algorithm>
using namespace std;
int n,m,a[1000],cnt;
bool cmp(int x){
if(x==2)return 0;
for(int i=2;i*i<=x;i++)
if(x%i==0)return 0;
return 1;
}
void dfs(int y,int s,int ans){
if(s==0){
if(cmp(ans))cnt++;
return;
}
for(int i=y;i<=n-s+1;i++){
ans+=a[i];
dfs(i+1,s-1,ans);
ans-=a[i];
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i];
dfs(1,m,0);
cout<<cnt<<endl;
return 0;
}
但是把主函数里的
dfs(1,m,0);
改成
dfs(1,m,1);
#1AC,#2~#5 WA,求调!!!