求助
查看原帖
求助
1650500
nullpt3楼主2025/2/1 14:44
#include<bits/stdc++.h >
using namespace std;
int n,k,a[100001],b[100001],s=0,num=0;
bool v[10001];
bool ok(int y){
	bool f=true;
	for(int i=2;i*i<=y;i++){
		if(y%i==0)f=false;
	}
	return f;
}
void dfs(int y,int dep){
	if(dep==k+1){
		
		if(ok(s)){
			num++;cout<<s<<endl;
		}
			
	}
	else{
 	for(int i=y;i<=n;i++){
			if(!v[i]){
				s=s+a[i];
				v[i]=true;
				dfs(i,dep+1);
				v[i]=false;
				s=s-a[i];
			}
		}
	}
}
int main(){
	//freopen("fenyou.in","r",stdin);
	//freopen("fenyou.out","w",stdout);
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
    
	dfs(1,1);
    cout<<num;
}
2025/2/1 14:44
加载中...