华师一附中OI组

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
123
返回列表 发新帖
楼主: admin
打印 上一主题 下一主题

P1036 选数

[复制链接]

2

主题

3

帖子

33

积分

新手上路

Rank: 1

积分
33
21#
发表于 2020-8-12 11:56:59 | 只看该作者
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int a[30];
  4. bool check(int x)
  5. {
  6.         for(int i=2;i*i<=x;i++)
  7.         if(x%i==0) return 0;
  8.         return 1;
  9. }

  10. int main()
  11. {
  12.         int n,k,ans=0;
  13.         cin>>n>>k;
  14.         for(int i=0;i<n;i++) cin>>a[i];
  15.         int U=1<<n;
  16.         for(int S=0;S<U;S++)
  17.         if(__builtin_popcount(S)==k)
  18.         {
  19.                 int sum=0;
  20.                 for(int i=0;i<n;i++)
  21.                 if(S&(1<<i)) sum+=a[i];
  22.                 if(check(sum)) ans++;
  23.         }
  24.         cout<<ans;
  25.         return 0;
  26. }
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|服务支持:DZ动力|华师一附中OI组  

GMT+8, 2025-4-5 05:42 , Processed in 0.103213 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表