對于程序員來說,求質數一直都是一個非?;A的問題。Java作為一種非常流行的編程語言,自然也有一些常用的求質數的方法和技巧。
下面介紹幾種常用的Java求質數方法和技巧。
public static boolean isPrime(int num) { if (num<= 1) { return false; } for (int i = 2; i<= Math.sqrt(num); i++) { if (num % i == 0) { return false; } } return true; }
這段代碼是一個非?;A的求質數的方法。首先,判斷輸入的數是否小于等于1,這種情況下的數不是質數。然后,從2開始,一直判斷到輸入數的平方根,如果輸入數能夠被某個數整除,說明不是質數。如果能夠經過這個for循環的判斷,那么就說明輸入數是質數。
下面是另一個求質數的方法。
public static boolean isPrime(int num) { if (num<= 1) { return false; } if (num<= 3) { return true; } if (num % 2 == 0 || num % 3 == 0) { return false; } for (int i = 5; i * i<= num; i = i + 6) { if (num % i == 0 || num % (i + 2) == 0) { return false; } } return true; }
這段代碼的思路也很清晰。首先,判斷輸入數是否小于等于1。然后,特判2和3兩個質數。接著,判斷輸入數是否能夠被2或者3整除。最后,循環判斷輸入數是否能夠被6k+1或者6k-1整除,其中k是正整數。
使用Java求質數主要需要注意一下幾點:
- 判斷輸入數是否小于等于1
- 循環判斷輸入數是否能夠被某個數整除的時候,從2開始循環即可,沒有必要從1開始循環
- 在循環判斷輸入數是否能夠被某個數整除的時候,只需要循環到輸入數的平方根即可,更大的數沒有必要判斷
綜上所述,以上就是Java求質數的方法和技巧。