为什么我答案是错的?
查看原帖
为什么我答案是错的?
1469663
San_yu楼主2025/1/12 18:51

#include <iostream>
#include<vector>
#include<algorithm>
#include<map>
#include<cmath>
using namespace std;
int s[25];
int n = 0, ans = 0;
bool check(int a)
{
	for (int i = 2; i * i <= a; i++)
	{
		if (a % i == 0)
			return false;
	}
	return true;
}
void fsd(int num ,int stemp,int sum) {
	if (num == 0) {
		if (check(sum)) ans++;
		return;
	}
	if (stemp >= n)
		return;
	
	for (int i = stemp; i < n; i++)
		fsd(num - 1, stemp + 1, sum + s[i]);
}

int main() {
	int m;
	cin >> n >> m;
	for (int i = 0; i < n; i++)
	{
		int tmp = 0;
		cin >> tmp;
		s[i] = tmp;
	}
	fsd(m, 0, 0);
	cout << ans << '\n';
	return 0;
}
2025/1/12 18:51
加载中...