对于暴力统计其实我们没有必要去判断每一个数字的。
    某个范围内由素数以及非素数,每个数都有自己的因子。两个素数相乘肯定是一个和数,非素数。所以,我们可以对一个和素不进行判断。
    进行优化下,减少计算次数。
    image.png

    1. class Solution {
    2. public int eratosthenes(int n) {
    3. boolean[] isPrime = new boolean[n];
    4. int count = 0;
    5. for(int i = 2; i < n; i++) {
    6. if(!isPrime[i]) {
    7. count++;
    8. for(int j = 2*i; j < n; j+=i) { // 优化: for(int j = i*i; j < n; j+=i)
    9. isPrime[j] = true;
    10. }
    11. }
    12. }
    13. return count;
    14. }
    15. }