O(n^1/2) isPrime

来源:互联网 发布:云数据库语言 编辑:程序博客网 时间:2024/06/05 23:59
    /** O(n^0.5) solution      *  Only need to consider if n can be divided by numbers from 2 to sqrt(n).     *  If n % even == 0, not prime;     *  If n % odd == 0, not prime;     *  1 is not a prime number;     *  2 is a prime number.      */    public static boolean isPrime(int n) {                // 2 is prime number        if (n == 2) {            return true;        }                // 1 is not prime number, even number greater than 2 is not prime number        if (n == 1 || (n & 1) == 0) {            return false;        }                // Starts from 3 to sqrt(n), check if n can be divied by odd numbers        for (int i = 3; i <= Math.sqrt(n); i += 2) {            if (n % i == 0)                return false;        }                return true;    }

0 0
原创粉丝点击