17分,求助
查看原帖
17分,求助
1307331
yayaPengRuiYang楼主2024/12/23 20:37
#include<bits/stdc++.h>
using namespace std;
bool is_prime(long long x)
{
	if(x<=1)return false;
	for(long long i=2;i<=x/2;i++)
	{
		if(x%i==0)return false;
	}
	return true;
}
int n,k;
long long cnt=0;
int arr[10010];
void dfs(int m, int sum, int startx){
    if(m == k){
        if(is_prime(sum))
            cnt++;
        return ;
    }
    for(int i = startx; i < n; i++)
        dfs(m + 1, sum + arr[i], i + 1);
    return ;
}
int main()
{
	cin>>n>>k;
	for(int i=1;i<=n;i++)
	{
		cin>>arr[i];
	}
	dfs(0, 0, 0);
	cout<<cnt;
 	return 0;
}
2024/12/23 20:37
加载中...