33分求助
查看原帖
33分求助
779432
hod_official楼主2024/7/27 15:16
#include<bits/stdc++.h>
using namespace std;

int k,n;
long long ans,sum;
int a[25];

bool isPrime(int F) {
    if (F <= 1) {
        return false;
    }
    for (int i = 2; i <= sqrt(n); i++) {
        if (F % i == 0) {
            return false;
        }
    }
    return true;
}

void dfs(int step,int st){
	if(step==k){
		if(isPrime(sum)){
			ans++;
		}
		return;
	}
	for(int i=st;i<n;i++){
		sum+=a[i];
		dfs(step+1,i+1);
		sum -=a[i];
	}
}

int main(){
	cin>>n>>k;
	for(int i=0;i<n;i++){
		cin>>a[i];
	}
	dfs(0,0);
	cout<<ans<<endl;
	return 0;
}
2024/7/27 15:16
加载中...