c++16分求调
查看原帖
c++16分求调
1112369
__oio__楼主2024/5/12 10:37

大佬求调

必贡献关注!!

#include <bits/stdc++.h>
using namespace std;

int n,k,a[25];
int cnt = 0;

bool pd(int x)
{
	if (x == 1)
	{
		return false;
	}
	if (x == 2||x == 3)
	{
		return true;
	}
	for (int i = 2;i * i <= x;i++)
	{
		if (x % i == 0)
		{
			return false;
		}
	}
	return true;
}

void dfs(int * a,int k,int num,int sum,int cnt,int n)
{
	if (k == 0)
	{
		if (pd(sum))
		{
			cnt++;
		}
		return;
	}
	for (int i = num;i <= n;i++)
	{
		dfs(a,k - 1, i + 1,sum + a[i],cnt,n);
	}
}


int main()
{
	cin>>n>>k;
	for (int i = 1;i <= n;i++)
	{
		cin>>a[i];
	}
	dfs(a , k , 1 , 0 , cnt , n);
	
	cout<<cnt;
	return 0;
} 
2024/5/12 10:37
加载中...