這道題我覺得難點就是在到底咋用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; }}新聞熱點
疑難解答