华为OJ平台——查找组成一个偶数最接近的两个素数
import java.util.Scanner; /**
* 问题描述:任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,
* 本题目要求输出组成指定偶数的两个素数差值最小的素数对,其中 5 < n <= 10000
* eg:输入20,输出7 13
*/
public class PrimePair { public static void main(String[] args) {
Scanner cin = new Scanner(System.in) ;
int n = cin.nextInt() ;
cin.close();
//简单判断输入的范围
if(n%2 == 1 || n <= 5 || n > 10000){
System.exit(-1);; ;
}
findPrimePair(n) ; } /**
* 找出满足条件的素数对
* @param n
*/
private static void findPrimePair(int n) {
for(int i = n/2-1 ; i > 0 ; i -= 2){
if(judgePrime(i) && judgePrime(n-i)){
System.out.println(i) ;
System.out.println(n-i) ;
return ;
}
}
} /**
* 判断一个整数是否是素数
* @param x
* @return true---素数 false---不是
*/
private static boolean judgePrime(int x) {
double end = x/2 ;
if (x == 1) {
return true;
} else {
for (int i = 2; i <= end; i++) {
if (x % i == 0) {
return false;
}
end = x / (i + 1.0);
}
return true;
}
}
}
华为OJ平台——查找组成一个偶数最接近的两个素数的更多相关文章
- java笔试之查找组成一个偶数最接近的两个素数
任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对. package test; import java.util.Sca ...
- 华为OJ平台——字符串分隔
题目描述: 连续输入字符串,请按长度为8拆分每个字符创 后输出到新的字符串数组: 长度不是8整数倍的字符串请在后面补数字0,空字符串不处理 输入 连续输入字符串(输入两次,每个字符长长度小于100)输 ...
- 华为OJ平台——输出最小的k个数
输入n个整数,输出其中最小的k个. 详细描述: 接口说明 原型: bool GetMinK(unsignedint uiInputNum, int *pInputArray, unsignedint ...
- 华为OJ平台——矩阵乘法
题目描述: 如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C. 输入: 1.第一个矩阵的行数 2.第一个矩阵的列数(也是第二个矩阵的行数) 3.第二个矩阵 ...
- 华为OJ平台——首次不重复字符
题目描述: 输入一个字符串,输出字符串中第一个没有重复的字符,若没有满足条件的字符存在,则输出“.” 思路: 这题很简单,直接逐次比较就好了,但是没有考虑到更好效率的方法,以后想到的话再加上来 imp ...
- 华为OJ平台——密码强度等级
题目描述: 密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分. 一.密码长度: 5 分: 小于等于4 个字符 10 分: 5 到7 字符 25 分: 大于等于8 个字符 二.字母: 0 ...
- 华为OJ平台——求最大连续bit数
题目描述: 求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1 输入: 一个byte型的数字 输出: 对应的二进制数字中1的最大连续数 思路: ...
- 华为OJ平台——统计字符串中的大写字母
题目描述: 统计字符串中的大写字母的个数 输入: 一行字符串 输出: 字符串中大写字母的个数(当空串时输出0) 思路: 这一题很简单,直接判断字符串中的每一个字符即可,唯一要注意的一点是输入的字符串可 ...
- 华为OJ平台——将真分数分解为埃及分数
题目描述: 分子为1的分数称为埃及分数.现输入一个真分数(分子比分母小的分数,叫做真分数),请将该分数分解为埃及分数.如:8/11 = 1/2+1/5+1/55+1/110. 输入: 输入一个真分数, ...
随机推荐
- 在VS2010上使用C#调用非托管C++生成的DLL文件(图文讲解)
http://www.cyqdata.com/cnblogs/article-detail-35876#
- SparkSql官方文档中文翻译(java版本)
1 概述(Overview) 2 DataFrames 2.1 入口:SQLContext(Starting Point: SQLContext) 2.2 创建DataFrames(Creating ...
- python 爬虫抓取心得
quanwei9958 转自 python 爬虫抓取心得分享 urllib.quote('要编码的字符串') 如果你要在url请求里面放入中文,对相应的中文进行编码的话,可以用: urllib.quo ...
- transform.localPosition操作时的一些注意事项
移动GameObject是非常平常的一件事情,一下代码看起来很简单: transform.localPosition += new Vector3 ( 10.0f * Time.deltaTime, ...
- java泛型的使用
package com.wzh.test.generic; import java.util.ArrayList; import java.util.HashMap; import java.util ...
- 安装ipython import path error
sudo pip install ipython --upgrade # 升级 版本兼容性问题,升级到最新版本的ipython 后,会报错 from pickleshare import Pickle ...
- git简单使用和说明文件的书写
一. git 简单使用 1.注册 https://github.com/ 2.初始化 配置 git config --global user.name "Your Name" gi ...
- 真正的轻量级WebService框架——使用JAX-WS(JWS)发布WebService
WebService历来都很受重视,特别是Java阵营,WebService框架和技术层出不穷.知名的XFile(新的如CXF).Axis1.Axis2等. 而Sun公司也不甘落后,从早期的JAX-R ...
- vb中&和+的区别
在字符串连接时+号只能是两个字符串线连接&号可以是字符串与另一种类型的数据相连接.例如"a"+"b"是合法的,而 "a"+2是错误的 ...
- C++学习2
命名空间(Namespace)主要为了避免命名冲突,其关键字为namespace 在多人代码整合过程中常用到: namespace Li{ //小李的变量声明 ; } namespace Han{ / ...