不知道哪错了 样例就不对
查看原帖
不知道哪错了 样例就不对
1259734
shenxiangxin楼主2025/7/23 19:25

#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;

#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;
}

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:25
加载中...