美文网首页
P3-统计素数个数-暴力算法

P3-统计素数个数-暴力算法

作者: YonchanLew | 来源:发表于2021-05-05 18:01 被阅读0次
    //统计素数个数
    //素数:只能被1和自身整除的自然数,0、1除外
    public class P3 {
     
        public static void main(String[] args) {
            System.out.println(bf(100));
        }
     
        //暴力算法
        public static int bf(int n) {
            int count = 0;
     
            for (int i = 2; i < n; i++) {
                count += isPrime(i) ? 1 : 0;
            }
     
            return count;
        }
     
        //判断是否是素数
        /*
            i 其实不用写成小于 x
            例如x=12时
            无非就是 2*6 3*4 4*3 6*2
            前后其实是相同,只是交换了的
            前后两个的临界点就是 根号12 * 根号12
            根号12约等于3.46,所以2*6 3*4 和 4*3 6*2 大概就是在3.46的位置开始对称
            只要根号x之前没找到,后面都不会找到,不用继续查找
        * */
        private static boolean isPrime(int x) {
    //        for (int i=2; i<x; i++){
            for (int i = 2; i * i <= x; i++) {
                if (x % i == 0) {
                    return false;
                }
            }
            return true;
        }
        
    }
    

    相关文章

      网友评论

          本文标题:P3-统计素数个数-暴力算法

          本文链接:https://www.haomeiwen.com/subject/pdicdltx.html