我不知道哪里错了!!大佬求助
查看原帖
我不知道哪里错了!!大佬求助
448134
DoublePig666楼主2021/12/20 14:11
#include<bits/stdc++.h>
using namespace std;
const int N=2005;
int n,k;
long long ans; 
int x[N];
bool pdzs(int s)
{
	for(int i=2;i<=sqrt(s);i++)
	{
		if(s%i==0)
		return 0;
	}
	return 1;
}
void dfs(int m,int sum,int be)
{
	if(m==k)//达到k个数了 
	{
		if(pdzs(sum))//判断质数 
		ans++;
		return;
	}
	for(int i=be;i<n;i++)
	dfs(m+1,sum+x[i],i+1);
	return;
}
int main()
{
	scanf("%d%d",&n,&k);
	ans=0;
	for(int i=1;i<=n;i++)
	scanf("%d",&x[i]);
	dfs(0,0,0);
	printf("%d",ans);
	return 0;
}
2021/12/20 14:11
加载中...