华为OJ训练之0036-170112-素数伴侣
来源:互联网 发布:js把数字转换为字符串 编辑:程序博客网 时间:2024/05/20 04:08
===========================================
题目描述
//若两个正整数的和为素数,则这两个正整数称之为“素数伴侣”,如2和5、6和13,它们能应用于通信加密。现在密码学会请你设计一个程序,从已有的N(N为偶数)个正整数中挑选出若干对组成“素数伴侣”,挑选方案多种多样,例如有4个正整数:2,5,6,13,如果将5和6分为一组中只能得到一组“素数伴侣”,而将2和5、6和13编组将得到两组“素数伴侣”,能组成“素数伴侣”最多的方案称为“最佳方案”,当然密码学会希望你寻找出“最佳方案”。
//输入:
//有一个正偶数N(N≤100),表示待挑选的自然数的个数。后面给出具体的数字,范围为[2,30000]。
//输出:
//输出一个整数K,表示你求得的“最佳方案”组成“素数伴侣”的对数。
//
//知识点 查找,搜索,排序
//运行时间限制 10M
//内存限制 128
//输入
//输入说明
//1 输入一个正偶数n
//2 输入n个整数
//输出
//求得的“最佳方案”组成“素数伴侣”的对数。
//样例输入 4 2 5 6 13
//样例输出 2
==========================================
三次没有通过 蓝瘦香菇
明明测了好几个都没错的呀 今天运势不好
===========================================
package package02;import java.util.Scanner;//题目描述//若两个正整数的和为素数,则这两个正整数称之为“素数伴侣”,如2和5、6和13,它们能应用于通信加密。现在密码学会请你设计一个程序,从已有的N(N为偶数)个正整数中挑选出若干对组成“素数伴侣”,挑选方案多种多样,例如有4个正整数:2,5,6,13,如果将5和6分为一组中只能得到一组“素数伴侣”,而将2和5、6和13编组将得到两组“素数伴侣”,能组成“素数伴侣”最多的方案称为“最佳方案”,当然密码学会希望你寻找出“最佳方案”。//输入://有一个正偶数N(N≤100),表示待挑选的自然数的个数。后面给出具体的数字,范围为[2,30000]。//输出://输出一个整数K,表示你求得的“最佳方案”组成“素数伴侣”的对数。// //知识点 查找,搜索,排序//运行时间限制 10M//内存限制 128//输入 //输入说明//1 输入一个正偶数n//2 输入n个整数//输出 //求得的“最佳方案”组成“素数伴侣”的对数。//样例输入 4 2 5 6 13//样例输出 2public class oj036 { int maxcount=0; //使用全排列 void permutation(int[] a,int k,int m) { int i,j; if(k == m) { int count=0; for(i=0;i<=m;i++) { //根据这种排列的结果 找素数对 if(i<m) { System.out.print(a[i]);System.out.print(a[i+1]); if(isPrime(a[i]+a[i+1])){count++;} i++; } } if(count>maxcount){maxcount=count;} System.out.println(); } else { for(j=k;j<=m;j++) { int t=a[j]; a[j]=a[k]; a[k]=t; permutation(a,k+1,m); t=a[j]; a[j]=a[k]; a[k]=t; } } } public boolean isPrime(int n) { boolean re = true; for (int i = 2; i < n; i++) { if (n % i == 0) { re = false; break; } } if (n <= 1) { re = false; } return re; } public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int n=scanner.nextInt(); int[] number=new int[n]; for(int i=0;i<n;i++) { number[i]=scanner.nextInt(); } oj036 oj=new oj036(); oj.permutation(number, 0, n-1); System.out.print(oj.maxcount); }}
0 0
- 华为OJ训练之0036-170112-素数伴侣
- 华为oj素数伴侣
- 华为oj之素数伴侣---匈牙利算法
- 华为OJ之素数伴侣-匈牙利算法
- 华为OJ(素数伴侣)
- 【华为OJ】【074-素数伴侣】
- 华为oj中级 素数伴侣
- 华为OJ——素数伴侣
- 华为oj素数伴侣,利用匈牙利算法求解
- 华为OJ<武研所>——素数伴侣
- 华为OJ_2129_素数伴侣
- 华为素数伴侣题目
- 华为机试---素数伴侣
- 华为机试--素数伴侣
- 华为OJ训练之0017-170103-查找组成一个偶数最接近的两个素数
- 华为OJ训练之0034-170112-密码强度等级
- 华为OJ训练之0035-170112-字符串加解密
- 华为OJ训练之0016-170102-记负均正
- ios
- Spring AOP初步介绍
- win7打开安卓模拟器报错 PANIC: Could not open:
- bootstrap-table 初级用法(个人笔记使用)
- 隐藏窗口
- 华为OJ训练之0036-170112-素数伴侣
- ORACLE 大量数据insert into的速度提高
- VC++数据类型转换大全
- POJ 1141 (dp括号匹配 保存路径)
- 错误集锦
- 495. Teemo Attacking
- UVA-213-Message Decoding 信息编码 基础模拟题 直观的新手思路+详细注释
- 国务院办公厅转发关于加强 土地统一管理的会议纪要-国办发〔1987〕5号
- 云安全之虚拟专用网(VPN)虚拟化 [How Neutron implements VPN Virtualization]