蒟蒻16分求助!
查看原帖
蒟蒻16分求助!
762967
k333k楼主2023/7/6 10:46
#include<bits/stdc++.h>
using namespace std;
int n,m,ans=0,sum=0,a[25];
bool vis[25];
bool prime(int x)
{
	if(x==1||x==0) return false;
	for(int i=2;i<=x;i++)
	{
		if(x%i==0) return false;
	}
	return true;
}
void dfs(int step)
{
	if(step==n+1)
	{
		if(prime(sum)==true) ans++;
		sum=0;
		return;		
	}
	for(int i=1;i<=m;i++)
	{
		if(vis[i]==true) continue;
		sum+=a[i];
		vis[i]=true;
		dfs(step+1);
		sum-=a[i];
		vis[i]=false;
		return;
	}
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++) cin>>a[i];
	dfs(1);
	cout<<ans;
	return 0;
}
2023/7/6 10:46
加载中...