判断小于n数中素数的个数,如果用普通的判断方法会超时,这里使用筛选法。

        具体请参考:http://blog.csdn.net/liukehua123/article/details/5482854

 

      

public class Solution {
    public int countPrimes(int n) {
    if(n <= 2)
    return 0;
    int count = 0;
    boolean[] prime = new boolean[n+1];
    for(int i=1; i<n+1; i++) {
        if(i % 2 == 0) {
            prime[i] = false;
        }
        else {
            prime[i] = true;
        }
    }
    for(int i=3; i<=Math.sqrt(n); i++) {
        if(prime[i]) {
            for(int j=2*i; j<n; j+=i) {
                prime[j] = false;
            }
        }
    }
    for(int i=1; i<n; i++) {
        if(prime[i]) {
            count++;
        }
    }
    return count;
    
    }
}

 

相关文章:

  • 2021-11-21
  • 2021-04-15
  • 2022-02-17
  • 2021-08-03
  • 2021-07-14
  • 2021-10-01
  • 2022-12-23
猜你喜欢
  • 2021-11-22
  • 2021-08-02
  • 2021-10-07
  • 2022-12-23
  • 2022-12-23
  • 2022-01-02
相关资源
相似解决方案