logo AlgoBeat OnlineJudge
登录 注册

题解

作者: tyxx040105  ·  发布于 2026-07-21 14:46:21  ·  最后修改于 2026-07-21 17:36:09
已通过
审核员:joe_zxq 彩笔 · 2026-07-21 17:36:09

I Love Dfs!!!!!!

#include<bits/stdc++.h>
using namespace std;
int sum,A[35],n,m,ans;
int check(int sum){
	if(sum==1) return 0;
	for(int i=2;i*i<=sum;i++){
		if(sum%i==0) return 0;
	}
	return 1;
}
void dfs(int x,int c) {
	if(c==m+1) {
		ans+=check(sum);
		return;
	}
	for(int i=x+1;i<=n;i++) {
		sum+=A[i];
		dfs(i,c+1);
		sum-=A[i];
	}
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>A[i];
	}
	dfs(0,1);
	cout<<ans;
	return 0;
}

暂无评论

登录 后即可评论。