码迷,mamicode.com
首页 > 编程语言 > 详细

【LeetCode-面试算法经典-Java实现】【204-Count Primes(统计质数)】

时间:2015-08-27 07:12:39      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:质数   面试   算法   java   

【204-Count Primes(统计质数)】


【LeetCode-面试算法经典-Java实现】【所有题目目录索引】


代码下载【https://github.com/Wang-Jun-Chao】

原题

  Description:
  Count the number of prime numbers less than a non-negative number, n.

题目大意

  统计小于非负整数n的素数的个数。

解题思路

  使用见埃拉托色尼筛法。

代码实现

算法实现类

public class Solution {

    public int countPrimes(int n) {

        if (n <= 1) {
            return 0;
        }

        // 默认所有的元素值都会设置为false
        boolean[] notPrime = new boolean[n];
        notPrime[0] = true;
        notPrime[1] = true;

        for (int i = 2; i * i < n; i++) {
            // 如果i是一个质数,i将i的倍数设置为非质数
            // 如是i是一个合数,则它必定已经设置为true了,因为是从2开始处理的
            if (!notPrime[i]) {
                for (int j = 2 * i; j < n; j += i) {
                    notPrime[j] = true;
                }
            }
        }

        // 统计质数的个数
        int result = 0;
        for (boolean b : notPrime) {
            if (!b) {
                result++;
            }
        }

        return result;
    }
}

评测结果

  点击图片,鼠标不释放,拖动一段位置,释放后在新的窗口中查看完整图片。

技术分享

特别说明

欢迎转载,转载请注明出处【http://blog.csdn.net/derrantcm/article/details/48021413

版权声明:本文为博主原创文章,未经博主允许不得转载。

【LeetCode-面试算法经典-Java实现】【204-Count Primes(统计质数)】

标签:质数   面试   算法   java   

原文地址:http://blog.csdn.net/derrantcm/article/details/48021413

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!