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

来源:互联网 发布:双色球绝密算法 编辑:程序博客网 时间:2024/05/16 16:14

【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】

2 1
原创粉丝点击