34分求助
查看原帖
34分求助
663740
qinxili楼主2023/12/24 19:48
#include <bits/stdc++.h>
using namespace std;
int a[20],kkk=0,abc,n,k;
bool isPrime(int x)
{
	if(x<2)
	{
		return false;
	}
	for(int i=2; i*i<=x; i++)
	{
		if(x%i==0)
		{
			return false;
		}
	}
	return true;
}
void dfs(int b,int c)
{
	if(b==0)
	{
		kkk+=isPrime(abc);
	}
	else
	{
		c++;
		for(int i=c; i<=n; i++)
		{
			abc+=a[i];
			b--;
			dfs(b,i);
			abc-=a[i];
			b++;
		}
	}
}
int main()
{
	cin>>n>>k;
	for(int i=0; i<n; i++)
	{
		cin>>a[i];
	}
	dfs(k,0);
	cout<<kkk;
	return 0;
}

样例运行时比样例输出多1

2023/12/24 19:48
加载中...