学术版不知为什么发不了了
充满希望的拼接质数2
80pts code
#include <iostream>
#include <algorithm>
using namespace std;
int a[25],n,ans=0;
bool flag[100005];
bool c(int sum){
if(sum==0||sum==1)return false;
for(int i=2;i*i<=sum;i++){
if(sum%i==0){
return false;
}
}
return true;
}
void f(int now,int sum){
if(now==n+1){
if(c(sum)){
ans++;
}
return ;
}
if(!flag[now]){
flag[now]=true;
f(now+1,sum+a[now]);
flag[now]=false;
}
f(now+1,sum);
}
int main(){
cin >>n;
for(int i=1;i<=n;i++)cin >>a[i];
sort(a+1,a+1+n);
f(1,0);
cout <<ans;
return 0;
}