【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】
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-02 20:17:19