选数(洛谷-P1036)
题目描述
已知 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)相关推荐
- 信息学奥赛一本通 1919:【02NOIP普及组】选数 | 洛谷 P1036 [NOIP2002 普及组] 选数
[题目链接] ybt 1919:[02NOIP普及组]选数 洛谷 P1036 [NOIP2002 普及组] 选数 [题目考点] 1.排列组合 2.深搜(子集树) 3.质数 [解题思路] 深搜(子集树) ...
- 深度优先搜索——选数(洛谷 P1036)
今天的题是一道深度优先搜索的题 题目链接 选自洛谷(P1036) 是一道很经典的DFS问题 首先我们先看一下题目是怎么描述的,读完题目我会在后面给出详细的思路! 题目描述 已知 nn 个整数 x_1, ...
- 信息学奥赛一本通 1925:【03NOIP普及组】麦森数 | OpenJudge NOI 4.4 1708:麦森数 | 洛谷 P1045 [NOIP2003 普及组] 麦森数
[题目链接] ybt 1925:[03NOIP普及组]麦森数 OpenJudge NOI 4.4 1708:麦森数 洛谷 P1045 [NOIP2003 普及组] 麦森数 [题目考点] 1. 高精度 ...
- 信息学奥赛一本通 2007:【20CSPJ普及组】方格取数 | 洛谷 P7074
[题目链接] ybt 2007:[20CSPJ普及组]方格取数 洛谷 P7074 [CSP-J2020] 方格取数 [题目考点] 1. 坐标型动规 [解题思路] 确定状态:a[i][j]为从起点走到i ...
- 洛谷 P1036 选数
P1036 选数 题目描述 已知 n 个整数 x1,x2,-,xn,以及一个整数 k(k<n).从 n 个整数中任选 k 个整数相加,可分别得到一系列的和.例如当 n=4,k=3,4 个整数分别 ...
- 洛谷 - P1036 选数(递归)
题目链接:点击查看 题目大意:给出n个数,我们需要从中选k个作为一个新的集合,问新集合的权值和有多少是素数 题目分析:这个题目考考察了两点: 判断素数 设计递归 为什么把判断素数单独列出来了呢?因为一 ...
- 洛谷P1036选数(素数+组合数)
题目链接:https://www.luogu.org/problemnew/show/P1036 主要考两个知识点:判断一个数是否为素数.从n个数中选出m个数的组合 判断一个数是否为素数: 素数一定是 ...
- 选数(洛谷P1036题题解,Java语言描述)
题目要求 P1036题目链接 分析 用递归的DFS来凑组合情况,别忘了判断素数... AC代码(Java语言描述) import java.util.Scanner;public class Main ...
- 洛谷 P1036 [NOIP2002 普及组] 选数(DFS)
题目描述 已知 n 个整数 x1,x2,-,xnx_1,x_2,-,x_nx1,x2,-,xn,以及1个整数k(k<nk<nk<n).从n个整数中任选k个整数相加,可分别得到一 ...
最新文章
- 在腾讯,如何做 Code Review?
- kill掉多个进程linux中的sudo,linux下批量kill进程的方法
- 通过通用数据访问扩展AWS生态系统
- 信息学奥赛一本通C++语言——1047:判断能否被3,5,7整除
- 使用CSE轻松实现接口访问控制
- Vhost and VIOMMU
- SpringCloud 2020.x.x工程bootstrap引导配置不生效的解决方案
- vsftpd 安装及简单配置
- 怎么查看和下载高清谷歌卫星地图
- photoshop ps 替换图片文字
- 计算机专业有非全日制研究生,计算机专业有双证在职研究生吗?
- java 上传图片与图片读取
- MicroTeam每周工作总结(1)
- android led弹幕,LED弹幕手持字幕
- Firefox使用技巧
- Thomas-Calculus——Infinite Sequences and Series(托马斯-微积分——无穷数列和级数-无穷级数)
- stlinkv2红灯闪烁_ST-LINK V2 DIY笔记(一)
- D3D9 创建多屏的全屏程序
- 如何在 Lightroom 中使用预设更改照片的外观?
- 归并排序、快速排序、二路快排、三路快排python实现
热门文章
- 谁再问你“天天爬那些数据有什么用”,就把这5本书扔给他!
- 如何优雅地测量一只猫的体积?
- STM32之SPI原理
- 为什么在一个公司待了两三年就想离职?
- Springboot2集成minidao持久层
- Windows环境配置Apache+Mysql+PHP
- Java并发编程(02):线程核心机制,基础概念扩展
- SpringBoot2.0 基础案例(03):配置系统全局异常映射处理
- 消息中间件RocketMQ源码解析-- --调试环境搭建
- thinkphp图片加载_标题栏ico展示