题目描述

已知 n 个整数 x1,x2,…,xn,以及一个整数 k(k<n)。从 n 个整数中任选 k 个整数相加,可分别得到一系列的和。例如当 n=4,k=3,4 个整数分别为 3,7,12,19 时,可得全部的组合与它们的和为:

3+7+12=22

3+7+19=29

7+12+19=38

3+12+19=34。

现在,要求你计算出和为素数共有多少种。

例如上例,只有一种的和为素数:3+7+19=29)。

输入输出格式

输入格式:

键盘输入,格式为:

n , k (1<=n<=20,k<n)

x1,x2,…,xn (1<=xi<=5000000)

输出格式:

屏幕输出,格式为:

一个整数(满足条件的种数)。

输入输出样例

输入样例#1: 

4 3
3 7 12 19

输出样例#1: 

1

源代码

#include<iostream>
#include<cmath>
using namespace std;
bool prime(int n);
void judge(int k,int i,int sum,int number[],int n);
int total=0;int main()
{int n,k;int number[20];int i;int count=0;cin>>n>>k;for(i=0;i<n;i++) cin>>number[i];if(n==k){for(i=0;i<n;i++)        count+=number[i];//计算数据和if(prime(count))    cout<<1<<endl;//调用函数判断是否是素数else cout<<0<<endl;}else{judge(k,0,0,number,n);//调用函数计算和cout<<total<<endl;}return 0;
}bool prime(int n)//判断是否是素数的函数
{int i;if(n==2)   return true;if(n%2==0)    return false;for(i=3;i<sqrt(n);i+=2)if(n%i==0)  return false;return true;
}void judge(int k,int i,int sum,int number[],int n)
{   if(k==0)//判断数据是否是素数if(prime(sum))total++;for(;i<n;i++)judge(k-1,i+1,sum+number[i],number,n);//递归调用计算数据个数
}

选数(洛谷-P1036)相关推荐

  1. 信息学奥赛一本通 1919:【02NOIP普及组】选数 | 洛谷 P1036 [NOIP2002 普及组] 选数

    [题目链接] ybt 1919:[02NOIP普及组]选数 洛谷 P1036 [NOIP2002 普及组] 选数 [题目考点] 1.排列组合 2.深搜(子集树) 3.质数 [解题思路] 深搜(子集树) ...

  2. 深度优先搜索——选数(洛谷 P1036)

    今天的题是一道深度优先搜索的题 题目链接 选自洛谷(P1036) 是一道很经典的DFS问题 首先我们先看一下题目是怎么描述的,读完题目我会在后面给出详细的思路! 题目描述 已知 nn 个整数 x_1, ...

  3. 信息学奥赛一本通 1925:【03NOIP普及组】麦森数 | OpenJudge NOI 4.4 1708:麦森数 | 洛谷 P1045 [NOIP2003 普及组] 麦森数

    [题目链接] ybt 1925:[03NOIP普及组]麦森数 OpenJudge NOI 4.4 1708:麦森数 洛谷 P1045 [NOIP2003 普及组] 麦森数 [题目考点] 1. 高精度 ...

  4. 信息学奥赛一本通 2007:【20CSPJ普及组】方格取数 | 洛谷 P7074

    [题目链接] ybt 2007:[20CSPJ普及组]方格取数 洛谷 P7074 [CSP-J2020] 方格取数 [题目考点] 1. 坐标型动规 [解题思路] 确定状态:a[i][j]为从起点走到i ...

  5. 洛谷 P1036 选数

    P1036 选数 题目描述 已知 n 个整数 x1,x2,-,xn,以及一个整数 k(k<n).从 n 个整数中任选 k 个整数相加,可分别得到一系列的和.例如当 n=4,k=3,4 个整数分别 ...

  6. 洛谷 - P1036 选数(递归)

    题目链接:点击查看 题目大意:给出n个数,我们需要从中选k个作为一个新的集合,问新集合的权值和有多少是素数 题目分析:这个题目考考察了两点: 判断素数 设计递归 为什么把判断素数单独列出来了呢?因为一 ...

  7. 洛谷P1036选数(素数+组合数)

    题目链接:https://www.luogu.org/problemnew/show/P1036 主要考两个知识点:判断一个数是否为素数.从n个数中选出m个数的组合 判断一个数是否为素数: 素数一定是 ...

  8. 选数(洛谷P1036题题解,Java语言描述)

    题目要求 P1036题目链接 分析 用递归的DFS来凑组合情况,别忘了判断素数... AC代码(Java语言描述) import java.util.Scanner;public class Main ...

  9. 洛谷 P1036 [NOIP2002 普及组] 选数(DFS)

    题目描述 已知 n 个整数 x1,x2,-,xnx_1,x_2,-,x_nx1​,x2​,-,xn​,以及1个整数k(k<nk<nk<n).从n个整数中任选k个整数相加,可分别得到一 ...

最新文章

  1. 在腾讯,如何做 Code Review?
  2. kill掉多个进程linux中的sudo,linux下批量kill进程的方法
  3. 通过通用数据访问扩展AWS生态系统
  4. 信息学奥赛一本通C++语言——1047:判断能否被3,5,7整除
  5. 使用CSE轻松实现接口访问控制
  6. Vhost and VIOMMU
  7. SpringCloud 2020.x.x工程bootstrap引导配置不生效的解决方案
  8. vsftpd 安装及简单配置
  9. 怎么查看和下载高清谷歌卫星地图
  10. photoshop ps 替换图片文字
  11. 计算机专业有非全日制研究生,计算机专业有双证在职研究生吗?
  12. java 上传图片与图片读取
  13. MicroTeam每周工作总结(1)
  14. android led弹幕,LED弹幕手持字幕
  15. Firefox使用技巧
  16. Thomas-Calculus——Infinite Sequences and Series(托马斯-微积分——无穷数列和级数-无穷级数)
  17. stlinkv2红灯闪烁_ST-LINK V2 DIY笔记(一)
  18. D3D9 创建多屏的全屏程序
  19. 如何在 Lightroom 中使用预设更改照片的外观?
  20. 归并排序、快速排序、二路快排、三路快排python实现

热门文章

  1. 谁再问你“天天爬那些数据有什么用”,就把这5本书扔给他!
  2. 如何优雅地测量一只猫的体积?
  3. STM32之SPI原理
  4. 为什么在一个公司待了两三年就想离职?
  5. Springboot2集成minidao持久层
  6. Windows环境配置Apache+Mysql+PHP
  7. Java并发编程(02):线程核心机制,基础概念扩展
  8. SpringBoot2.0 基础案例(03):配置系统全局异常映射处理
  9. 消息中间件RocketMQ源码解析-- --调试环境搭建
  10. thinkphp图片加载_标题栏ico展示