33求助
查看原帖
33求助
484439
xiaoqinglang11楼主2022/4/29 13:14

运行结果传送门

代码

#include<bits/stdc++.h>
#define MAXN 25
using namespace std;
int n,k;
int a[MAXN];
int ans;
bool ispri(int x)
{
	for(int i=2;i*i<=x;i++)
		if(x%i==0)
			return false;
	return true;
}
void dfs(int m,int sum,int startx)
{
	if(m==k)
	{
		if(ispri(sum))
			ans++;
		return ;
	}
	for(int i=startx;i<=n;i++)
		dfs(m+1,sum+a[i],i+1);
}
int main()
{
	scanf("%d%d",&n,&k);
	for(int i=1;i<=n;i++)
		scanf("%d",&a[i]);
	dfs(1,0,1);
	printf("%d\n",ans);
	return 0;
}

2022/4/29 13:14
加载中...