华为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. 输入: 输入一个真分数, ...
随机推荐
- shell脚本摘要
开启监听端口的程序时,查看是否开启成功(该例子监听8983端口) #动态显示[|][/][-][\] function spinner() { local pid=$1 local delay=0.5 ...
- 解决edittext输入多行可以滑动的问题
解决edittext输入多行可以滑动的问题 Java代码: public class ScrollEditLayout extends ScrollView { public ScrollEdi ...
- Android网络通信库Volley简介
1. 什么是Volley 在这之前,我们在程序中需要和网络通信的时候,大体使用的东西莫过于AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient( ...
- Log4j乱码
在log4j.properties里添加encoding , 例如 : log4j.appender.fuscent=org.apache.log4j.DailyRollingFileAppender ...
- Visual Stadio 2015创建WebApplication应用和运行赏析
专题图: 1,创建一个WebApplication应用 2,项目结构和布局 3,运行项目 作者:ylbtech出处:http://ylbtech.cnblogs.com/本文版权归作者和博客园共有, ...
- JadClipse eclipse反编译插件
A.下载JadClipse,http://jadclipse.sourceforge.net/wiki/index.php/Main_Page#Download,注意选择与eclipse版本一致的版本 ...
- gc 辅助打印信息
cat xx.xml|grep GC <jvm-arg>-XX:+PrintGCDetails</jvm-arg> <jvm-arg>-XX:+PrintGCDat ...
- android studio 更新 Gradle错误解决方法
Android Studio每次更新版本都会更新Gradle这个插件,但由于长城的问题每次更新都是失败,又是停止在Refreshing Gradle Project ,有时新建项目的时候报 Gradl ...
- GridControl 继承写法修改自己的GridControl
namespace GridControlDemo { class MyGridControl : GridControl { protected override BaseView CreateDe ...
- NYOJ 52-无聊的小明
点击打开链接 无聊的小明 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 这天小明十分无聊,没有事做,但不甘于无聊的小明聪明的想到一个解决无聊的办法,因为他突 ...