求调,16分
查看原帖
求调,16分
1332086
light_QAQ楼主2024/10/23 22:54
#include <bits/stdc++.h>
#define int long long
#define ld long long
using namespace std;
int n,k,a[25],ans = 0;
bool vis[25] = {0};
bool qaq(int x)
{
	for (int i = 2;i * i <= x;i++)
	{
		if (x % i == 0)
		{
			return 0;
		}
	}
	return 1;
}
void dfs(int sum,int cnt)
{
	if (cnt == k)
	{
		if (qaq(sum))
		{
			ans++;
		}
		return;
	}
	for (int i = 1;i <= n;i++)
	{
		if (!vis[i])
		{
			vis[i] = 1;
			dfs(sum + a[i],cnt + 1);
			vis[i] = 0;
		}
	}
}
signed main()
{
	cin >> n >> k;
	for (int i = 1;i <= n;i++)
	{
		cin >> a[i];
	}
	dfs(0,0);
	cout << ans;
	return 0;
}
2024/10/23 22:54
加载中...