华为OJ079-查找组成一个偶数最接近的两个素数

Posted Wang-Junchao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华为OJ079-查找组成一个偶数最接近的两个素数相关的知识,希望对你有一定的参考价值。

【华为OJ】【算法总篇章】


【华为OJ】【079-查找组成一个偶数最接近的两个素数】

【工程下载】


题目描述

任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对

输入描述

输入一个偶数

输出描述

输出两个素数

输入例子

20

输出例子

7
13

算法实现

import java.util.Scanner;

/**
 * Author: 王俊超
 * Date: 2016-01-03 20:44
 * Declaration: All Rights Reserved !!!
 */
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
//        Scanner scanner = new Scanner(Main.class.getClassLoader().getResourceAsStream("data.txt"));
        while (scanner.hasNext()) {
            int n = scanner.nextInt();
            System.out.println(findPrime(n));
        }

        scanner.close();
    }

    private static String findPrime(int n) {

        for (int i = n / 2; i >= 2; i--) {
            if (isPrime(i) && isPrime(n - i)) {
                return i + "\\n" + (n - i);
            }
        }

        return null;
    }

    private static boolean isPrime(int n) {
        if (n < 2) {
            return false;
        }

        int sqrt = (int) Math.sqrt(n);

        for (int i = 2; i <= sqrt; i++) {
            if (n % i == 0) {
                return false;
            }
        }

        return true;
    }
}

以上是关于华为OJ079-查找组成一个偶数最接近的两个素数的主要内容,如果未能解决你的问题,请参考以下文章

华为机试题 HJ60查找组成一个偶数最接近的两个素数

华为机试题 HJ60查找组成一个偶数最接近的两个素数

#yyds干货盘点# 解决华为机试:查找组成一个偶数最接近的两个素数

华为机试HJ60:查找组成一个偶数最接近的两个素数

基础编程题之查找组成一个偶数最接近的两个素数

每日一题 | day12( 二进制插入 | 查找组成一个偶数最接近的两个素数)