0pts 求调
查看原帖
0pts 求调
1058091
Kingsley_qu楼主2024/7/23 15:19
#include <iostream>
using namespace std;

int n, cnt, a[105], p[105];

bool is(int n)
{
	if(n < 2) return 0;
	for(int i = 2; i * i <= n; i++)
	{
		if(n % i == 0) return 0;
	}
	return 1;
}

void dfs(int step, int sum)
{
	if(step > n)
	{
		if(is(sum)) cnt++;
		return ;
	}
	a[step] = 0;
	dfs(step + 1, sum);
	a[step] = 1;
	dfs(step + 1, sum + p[step]);
}

int main()
{
	cin >> n;
	for(int i = 1; i <= n; i++) cin >> p[i];
	dfs(1, 0);
	cout << cnt;
	return 0;
}
2024/7/23 15:19
加载中...