帮我看看呢
查看原帖
帮我看看呢
1132685
ONicklgzh楼主2024/4/10 17:33
#include<bits/stdc++.h>
using namespace std;

const int N =21;
int a[N],q[N],sum,n,ans=0,k;

bool ispirme(int sum){
	if(sum<2) return false;
	for(int i=2;i*i<=sum;i++){
		if(sum%i==0) return false;
	} 
	return true;
}
void dfs(int m,int startx){
	if(m>k){
		for(int i=1;i<=k;i++){
			sum+=a[i];
		} if(ispirme(sum)){
			ans++;
		} 
	 return;}
	for(int i=startx;i<=n;i++){
		a[m]=q[i];
		dfs(m+1,i+1);
		a[m]=0;
	}
}
int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); 
	int n,k;
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>q[i];
	}
	dfs(1,1);
	cout<<ans; 
	return 0;
} 
2024/4/10 17:33
加载中...