全部评论 1

  • 2026-08-26 来自 北京

    0
    • 有我
      #include<bits/stdc++.h>
      using namespace std;
      #define ll long long
      ll n,k,a[25];
      map<ll,ll>mp;
      ll lowbit(ll x){return x&(-x);}
      bool ck(ll n){
      if(n<2)return 0;
      for(ll i=2;i<=n/i;i++)
      if(n%i==0)return 0;
      return 1;
      }
      ll cou(ll n){
      ll sum=0;
      while(n){
      n-=lowbit(n);sum++;
      }return sum;
      }
      int main(){
      cin>>n>>k;
      ll ss=1;
      for(ll i=1;i<=n;i++){
      cin>>a[i];
      mp[ss]=a[i];
      ss<<=1;
      }
      ll mask=(1<<n)-1;
      ll sum=0,coo=0;
      for(ll i=1;i<=mask;i++){
      if(cou(i)==k){
      sum=0;
      for(ll j=i;j;j-=lowbit(j)){
      ll low=lowbit(j);
      sum+=mp[low];
      }
      if(ck(sum))coo++;
      }
      }cout<<coo;
      return 0;
      }

      4天前 来自 广东

      0
暂无数据

提交答案之后,这里将显示提交结果~

首页