请问大佬们为什么只过了1/4两个点
查看原帖
请问大佬们为什么只过了1/4两个点
726603
Leibyi_233楼主2022/7/26 19:36
#include<cstdio>
#include<iostream>
using namespace std;
int a[22];
bool check(int x)
{int i;
for(i=2;i*i<x;i++)
if(x%i==0)return 0;
return 1;}

int main()
{
int n,k,i,u,j,ans=0,sum;
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
u=1<<n;
for(i=0;i<=u;i++)
if(__builtin_popcount(i)==k)
{sum=0;
for(j=1;j<=n;j++)
if(i&(1<<j))
sum+=a[i];
if(check(sum))
ans++;}
cout<<ans;
return 0;
}


2022/7/26 19:36
加载中...