爱程序网

[LeetCode] Count Primes

来源: 阅读:

 

     这道题我觉得难点就是在到底咋用java判断一个数是不是质数这个点上。

     说实话这个我实在没啥点,我这个办法也是直接死背下来的,所以我也不会说原理。

     关于isPrime()method里面那个for loop为啥step是2是因为我的loopcong3开始,3,5,7,9……这样是略过了所有偶数,所有偶数除了2,都不可能是prime的。(偶数判断也已经单独写了if statament。)所以简化过程,直接在奇数里面判断。

     代码如下。~

public class Solution {
    public int countPrimes(int n) {
        if(n<=2){
            return 0;
        }
        int count=1; //at least 2 is a prime
        for (int i=3;i<n;i++){
            if(isPrime(i)==true){
                count++;
            }
        }
        return count;
    }
    
    public boolean isPrime(int n){
        if(n%2==0){
            return false;
        }
        for(int i=3;i*i<=n;i=i+2){
            if(n%i==0){
                return false;
            }
        }
        return true;
    }
}

 

关于爱程序网 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助