不知道哪错了样例不对
查看原帖
不知道哪错了样例不对
1259734
shenxiangxin楼主2025/7/23 19:28
#include<bits/stdc++.h>
using namespace std;
int a[30];
int b[30];
int n,k;
int ans=0;
int check(int x)
{
	if(x<2)
	{
		return 0;
	}
	for(int i=2;i*i<=x;i++)
	{
		if(x%i==0)
		{
			return 0;
		}
	}
	return 1;
}
int sum;
void dfs(int x,int t)
{
	if(x>k)
	{
		if(check(sum)==1)
		ans++;
		return ;
	}
	for(int i=t;i<=n;i++)
	{
		if(b[i]==0)
		{
			sum+=a[i];
			b[i]=1;
			dfs(x+1,i+1);
			b[i]=0;
			sum-=a[i];
		}
	}
}
int main()
{
	cin>>n>>k;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	dfs(1,1);
	cout<<ans<<endl;
	return 0;
}
2025/7/23 19:28
加载中...