67分,求助
查看原帖
67分,求助
1394357
hzjans楼主2025/1/16 16:57
#include<bits/stdc++.h>
using namespace std;
int A[1010],B[1010],n,m,sum,cnt;
bool zs(int t){
	if(t == 1)return false;
	for(int i = 2;i * i <= t;i++){
		if(t % i == 0){
			return false;
		}
	}
	return true;
}
void find(int x,int s){
	if(x == m + 1){
		if(zs(sum)){
			cnt++;
		}
		return ;
	}
	for(int i = s + 1;i <= n;i++){
		if(!B[A[i]]){
			sum += A[i];
			B[A[i]] = 1;
			find(x + 1,i);
			sum -= A[i];
			B[A[i]] = 0;
		}
	}
	return;
}
int main(){
	
	cin >> n >> m;
	for(int i = 1;i <= n;i++){
		cin >> A[i];
	}
	sort(A + 1,A + 1 + n);
	find(1,0);
	cout << cnt;
	
	return 0;
}
2025/1/16 16:57
加载中...