1、题目描述
给定整数 n
,返回 所有小于非负整数 n
的质数的数量 。
![](https://img8.php1.cn/3cdc5/246ab/61b/88c81e77e38d95d5.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQ29kaW5nTEo=,size_20,color_FFFFFF,t_70,g_se,x_16)
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 }