题解 | #判断质数#

判断质数

https://www.nowcoder.com/practice/4d2a100c2e544f56ac1ad17e9ffa107d

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Main main = new Main();
        Scanner scan = new Scanner(System.in);
        int number = scan.nextInt();
        System.out.println(main.isPrimeNumber(number));
    }

    public Boolean isPrimeNumber(int number) {
        //判断非偶数
        if (number != 2 && number % 2 == 0)
            return false;
        //10以上的数
        else if (number > 10) {
            /*根式相除法,找到距离number平方根最近的整数i,
            **用小于等于i的质数与number相除
            */
            for (int i = 3; i < Math.sqrt(number) + 1; i += 2) {
                if (number % i == 0) {
                    return false;
                }
            }
        } else {
            //个位数用字符匹配
            String a = Integer.toHexString(number);
            if (a.matches("[2357]")) {
                return true;
            } else
                return false;
        }
        return true;
        //write your code here......

    }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务