1、题目描述
给定整数 n
,返回 所有小于非负整数 n
的质数的数量 。
2、算法分析
这个方法记住即可,这是一个古老的筛素数的方法。
初始化长度 O(n)O(n) 的标记数组,表示这个数组是否为质数。数组初始化所有的数都是质数.
从 2 开始将当前数字的倍数全都标记为合数。标记到 \sqrt{n} ,n 时停止即可。
3、代码实现
class Solution {public int countPrimes(int n) {boolean[] isPrime = new boolean[n];Arrays.fill(isPrime,true);for(int i = 2;i*i }