题解 | #查找组成一个偶数最接近的两个素数#

查找组成一个偶数最接近的两个素数

https://www.nowcoder.com/practice/f8538f9ae3f1484fb137789dec6eedb9

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int num = in.nextInt();
        // 设置最小差值
        int min = num;
        // 设置返回的小数和大数
        int low = 0, big = 0;

        for(int i = 1; i <= num / 2; i++) {
            // 如果不是素数,就下一波
            if(!isPrime(i)) {
                continue;
            }
            // 得到差值,判断另外一个数是否是素数,不是也下一波
            int sub = num - i;
            if(!isPrime(sub)) {
                continue;
            }
            // 如果差值小于 min,替换
            if(min > sub) {
                min = sub;
                low = i;
                big = sub;
            }
        }
        System.out.println(low);
        System.out.println(big);
        
    }

    // 判断素数(只能它和它本身作为除数),这个方法也是必会的方法,否则特么就没法做题
    public static boolean isPrime(int n) {
        // 从 2 到 n 开始遍历,其中只要这个数字除以 i 能除开,就不是素数,否则就是素数
        // 3 是素数
        // 5 是素数
        // 7 是素数
        // 9 不是,因为 3*3=9
        for(int i = 2; i < n; i++) {
            if(n % i == 0) {
                return false;
            }
        }
        return true;
    }
}

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务