华为OJ平台——查找组成一个偶数最接近的两个素数
2016-06-16 22:15
337 查看
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; } } }
相关文章推荐
- 数学 ZJOI 2012 数列
- NET中的类型和装箱/拆箱原理
- Android Camera 浅析
- Java中从指定txt读取文件
- Python内建函数与对象方法
- web前端学习路线
- 执行shell脚本的方式
- 如何在Oracle中使用Java存储过程(详解)
- java缩小图片
- 信息增益
- Zynq入门基础实验一之Helloworld
- 想精度高,可以考虑用c语言中的函数gettimeofday
- Android studio动态调试smali
- 聊聊高并发系统之限流特技
- Qt属性系统
- nagios插件之监控tcp的established数量
- Linux shell提交github安装以及使用
- Android 音量竞争机制
- 士兵杀敌(一)nyoj
- 设计模式、架构与框架