选数
题目链接:https://www.luogu.com.cn/problem/P1036
void dfs(int n,int k,int cnt,int i,int res)
{
if(cnt==k){
bool ok=true;
for(int i=2;i*i<=res;i++){
if(res%i==0)ok=false;
}
if(res==2)ok=true;
if(res==1)ok=false;
if(ok)ans++;
return;
}
if(i>n)return;
dfs(n,k,cnt+1,i+1,res+x[i]);
dfs(n,k,cnt,i+1,res);
}

浙公网安备 33010602011771号