求助
  • 板块学术版
  • 楼主wweiyuzhao
  • 当前回复2
  • 已保存回复2
  • 发布时间2021/7/31 13:22
  • 上次更新2023/11/4 12:24:15
查看原帖
求助
137627
wweiyuzhao楼主2021/7/31 13:22

P3172

#include<iostream>
using namespace std;
int a[50];
bool check(int s)
{
	for(int i=2;i*i<=s;i++)
	{
		if(s%i==0)
		{
			return 0;
		}
	 } 
	 return 1;
}
int ans;
int main()
{
	int n,m;
	cin>>n>>m;
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
	}
	int h=1<<n;
	for(int i=0;i<h;i++)
	{
		if(__builtin_popcount(i)==m)
		{
			int e=0;
			for(int j=0;j<n;j++)
			{
				if(i&(1<<i))
				{
					e+=a[j];
				}
			}
			if(check(e))
			{
				ans++;
			}
		}
	}
	cout<<ans;
	return 0;
}

真不知道我这个样例都没有过去的代码是怎样AC一个点的

2021/7/31 13:22
加载中...