Java机试题:查找组成一个偶数最接近的两个素数

描述

任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。
 
本题含有多组样例输入。
 
数据范围:输入的数据满足 

输入描述:

输入一个大于2的偶数

输出描述:

输出两个素数

复制代码
import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        while(sc.hasNextInt()){
            //  4 <= num <= 1000,并且是偶数
            int num = sc.nextInt();
            int differ = -1;
            int a = 0;
            int b = 0;
            // 第一个素数不可能超过num/2
            for (int i = 2; i <= num / 2; i++) {
                // 判断两个是否是素数
                if(checkIsPrimeNum(i) && checkIsPrimeNum(num - i)) {
                    // 判断两数差
                    if(differ == -1 || differ > num - i - i) {
                        differ = num - i - i;
                        a = i;
                        b = num - i;
                    }
                }
            }
            System.out.println(a);
            System.out.println(b);
        }
    }
    
    public static boolean checkIsPrimeNum(int a) {
        boolean ret = true;
        if(a == 2) {
            return true;
        } else {
            for (int i = 2; i < a; i++) {
                if(a % i == 0) {
                    ret = false;
            break; } }
return ret; } } }
复制代码

 题目来源:牛客网

posted @   对月当歌  阅读(63)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示