17分哪错了
查看原帖
17分哪错了
1508667
DongYuke楼主2024/10/23 19:31
#include <bits/stdc++.h>
using namespace std;
int a[22], n, k;
long long ans;

bool prime(int h)
{
    if(h == 1)
	{
		return false;
	}
    for(int i = 2; i * i <= h; i++)
    {
    	if(h % i == 0)
        {
        	return false;
		}
	}      
    return true;
}

void dfs(int x, int sum, int ss)
{
    if(x == k)
	{
        if(prime(sum))
        {
        	ans++;
		}
    }
    for(int i = ss; i < n; i++)
    {
    	dfs(x + 1, sum + a[i], i + 1);
	}  
}
int main ()
{
	cin >> n >> k;
    for(int i = 1; i <= n; i++)
    {
    	cin >> a[i];
	}
    dfs(0, 0, 0);
    cout << ans;
	return 0;
}
2024/10/23 19:31
加载中...