题目描述

已知 n 个整数x1​,x2​,…,xn​,以及1个整数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个整数(满足条件的种数)。

输入输出样例

输入样例#1: 复制

4 3
3 7 12 19

输出样例#1: 复制

1
import java.util.*;
public class Main {
static int ans=0;
static Scanner in=new Scanner(System.in);
static int n=in.nextInt();
static int k=in.nextInt();
static int a[]=new int[n+2];
public static void main(String[] args) {
// TODO Auto-generated method stub for(int i=0;i<n;i++)
{
a[i]=in.nextInt();
} dfs(0,k,0); System.out.println(ans);
}
static int c=0;
private static void dfs(int sum,int choo,int now) {
if(n-now<choo)return;
if(choo==0){ if(is_prime(sum)==1){ ans++;
}
return ;
} dfs(sum+a[now],choo-1,now+1);
dfs(sum,choo,now+1); } private static int is_prime(int sum) {
// TODO Auto-generated method stub
if(sum==1)return 0;
for(int i=2;i*i<=sum;i++)
if(sum%i==0)
return 0;
return 1;
} }

最新文章

  1. Entity Framework 6 Recipes 2nd Edition(10-3)译 -&gt; 返回结果是一个标量值
  2. Java GridBagLayout 简单使用
  3. spring相关jar包的含义
  4. 深入探究javascript的 {} 语句块
  5. js事件模型
  6. 设计模式(c#)代码总结
  7. 8-3-COMPETITION
  8. Lucene:QueryParser
  9. 【基础练习】【vector】codevs3393 序列倒置
  10. WAMP下定义wordpress固定连接出现文章页面404
  11. 安装Jenkins后 启动时失败的问题解决
  12. JavaScript事件与例子
  13. Python实战之列表list的详细简单练习2
  14. 用户需求与NABCD分析
  15. canvas入门之时钟的实现
  16. R语言数据集合并、数据增减、不等长合并
  17. Java8新特性第3章(Stream API)
  18. [转]11个教程中不常被提及的JavaScript小技巧
  19. Python_简单三级菜单制作
  20. postman 测试套件collection

热门文章

  1. 产品经理进阶:如何用UML的顺序图表达思想?
  2. css position sticky All In One
  3. React Hooks 实现一个计时器组件
  4. CSS margin collapsing All In One
  5. how to create a style element in js (many ways)
  6. css3 units &amp; 1 turn
  7. NGK和USDN的应用
  8. Java对象内存布局
  9. Java魔法类:Unsafe应用解析
  10. 中心化-ESB