你的位置:首页 > Java教程

[Java教程][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;  }}