不会
查看原帖
不会
321043
qq2649580347楼主2020/11/6 13:10

看看哪里不行,我就过了第二个点

#include<bits/stdc++.h>
using namespace std;
int a[21],f[21],n,k,ans,total;
int bp(int x)
{
	int flag=0;
	for(int i = 2 ; i <= sqrt(x) ; i++)
	if(x % i == 0)flag++;
	if(flag==0)
	return 1;
	else 
	return 0;
}
void dfs(int x)
{
	if(x>k)
	{
		return;
	}
	else{
		for(int i = 1 ; i <= n ; i++)
		{
		if(f[i]=0)
		{
		f[i] = 1;
		ans += a[i];
		total += bp(ans);
		dfs(x+1);
		f[i] = 0;
		ans -= a[i];
		}
		
		}
	}
}
int main(){
	cin >> n >> k ;
	for(int i = 1 ; i <= n ; i++)
	cin >> a[i];
	dfs(1);
	cout << total;
	return 0;
}
2020/11/6 13:10
加载中...