直接崩溃,求解
查看原帖
直接崩溃,求解
680434
shumu楼主2023/11/14 19:22
#include<bits/stdc++.h>
using namespace std;
int n,k,x[22];
bool hash[10000];
bool is_prime(int n) {
    if (n <= 1) return false;
    for (int i = 2; i <= sqrt(n); i++) {
        if (n % i == 0) return false;
    }
    return true;
}
void dfs(int dep,int sum) {
	if(is_prime(sum)==true) {
		hash[sum]=true;
		return;
	}
	dfs(dep+1,sum);
	dfs(dep+1,sum+x[dep]);
}
int main() {
	int ans=0;
	cin>>n>>k;
	for(int i=1;i<=n;i++) cin>>x[i];
	dfs(1,0);
	for(int i=1;i<=10000;i++) {
		if(hash[i]) ans++;
	}
	cout<<ans;
	return 0;
}
2023/11/14 19:22
加载中...