RE?
查看原帖
RE?
559969
dtw35l楼主2022/4/28 19:10
#include <cstdio>

bool isprime(int n) {
	for (int i = 0; i * i <= n; i++) {
		if (n % i == 0)
			return false;
	}
	return true;
}
int a[25], n, k, ans;
void dfs(int x, int b, int c) {
	/*
	x:选了几个数 
	b:之前所有数字的和 
	c:该枚举的第一个数 
	*/
	if (x == k) {
		if (isprime(b)) ans++;
		return ;
	}
	for (int i = c; i < n; i++) {
		dfs(x + 1, b + a[i], i + 1);
	}
	return ;
}
int main() {
	scanf("%d%d", &n, &k);
	for (int i = 0; i < n; i++) {
		scanf("%d", &a[i]);
	}
	dfs(0, 0, 0);
	printf("%d\n", ans);
	return 0;
}```
2022/4/28 19:10
加载中...