16分求助
查看原帖
16分求助
505281
D_M_楼主2022/2/27 20:22
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll n,k,a[100010],cnt;
bool IsPime(long long solo){
	for(ll i=2;i<=sqrt(n);i++){
		if(solo<=1){
			return false;
		}
		ll sq=sqrt(solo);
		for(ll i=2;i<=sq;i++){
			if(solo%i==0){
				return false;
			}
		}
	}
} 
void Dfs(ll cc,ll gg,ll sum){
	if(cc==k+1){
		if(IsPime(sum)){
			cnt++;
		}
		return;
	}
	for(ll i=gg;i<=n;i++){
		Dfs(cc+1,i+1,sum+a[i]);
	}
}

int main(){
	cin >> n >> k;
	for(ll i=1;i<=n;i++){
		cin >> a[i];
	}
	Dfs(1,1,0);
	cout << cnt;
	return 0;
}
2022/2/27 20:22
加载中...