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