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

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

http://www.nowcoder.com/questionTerminal/f8538f9ae3f1484fb137789dec6eedb9

从中间n/2向两侧遍历,找到第一组和为n的素数组合就打印即可,一定注意要加break,不然会继续遍历打印其它素数组合
isPrime:判断一个数后是否是素数的标准是看除了1和它本身是否有其它数可以作为它的因数,有的话就不是返回false

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int n = sc.nextInt();
            for(int i=n/2;i>=2;i--){
                if(isPrime(i)&&isPrime(n-i)){
                    System.out.println(i);
                    System.out.println(n-i);
                    break;
                }
            }
        }
    }

    public static boolean isPrime(int n){
        for(int i=2;i<n;i++){
            if(n%i==0){
                return false;
            }
        }
        return true;
    }
}
全部评论
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) { int aa = in.nextInt(); for (int i = aa / 2; i < aa ; i++) { if (isPrime(i) && isPrime(aa - i)) { System.out.println((aa - i));//答案默认要求结果先大后小打印 System.out.println(i); break; } } } in.close(); } // 判断一个数是不是素数 static boolean isPrime(int aa) {//严谨来说应该这样写 boolean flag = true; if (aa > 1) { if (aa == 2) { flag = true; } else { for (int i = 2; i < aa; i++) { if (aa % i == 0) { flag = false; break; } } } } else { flag = false; } return flag; } }
点赞
送花
回复
分享
发布于 2020-03-10 13:33

相关推荐

9 1 评论
分享
牛客网
牛客企业服务