Java 程式檢查數字是否為素數
給定一個數字,假設為 N,編寫一個 Java 程式來檢查給定的數字是否為素數。素數是隻有兩個因數 1 和它本身的特殊數字,它們不能被任何其他數字整除。
示例場景 1
Input: num = 1; Output: 1 is not a prime number
示例場景 2
Input: num2 = 5; Output: 5 is a prime number
5 只能被 1 和 5 整除
使用因式分解檢查素數
檢查給定數字是否為素數的樸素方法是 因式分解。在這個過程中,我們首先將給定數字除以所有小於或等於它的自然數,然後檢查因數的數量。如果因數的數量只有兩個,則給定數字是素數,否則不是。
示例
以下示例是上述方法的實際說明。
public class Example { public static void main(String[] args) { int num = 89; System.out.println("The given number is: " + num); // initial count of factors int count = 0; // to check prime number if(num == 2) { System.out.println(num + " is a prime number"); } else { // checking number of factors for(int i = 1; i <= num; i++) { if(num % i == 0) { count++; } } // checking number of counts to print result if(count == 2) { System.out.println(num + " is a prime number"); } else { System.out.println(num + " is not a prime number"); } } } }
執行此程式碼後,將顯示以下結果 -
The given number is: 89 89 is a prime number
使用平方根檢查素數
我們可以透過僅檢查到數字的平方根來最佳化上述方法。原因是數字的較大因數必須乘以一個較小的因數,而該較小的因數已經過檢查。
示例
以下 Java 程式說明了如何以更最佳化的方式檢查給定數字是否為素數。
public class Example { public static boolean checkPrimeFunc(int nums) { if (nums <= 1) { return false; } for (int i = 2; i <= Math.sqrt(nums); i++) { if (nums % i == 0) { return false; } } return true; } public static void main(String[] args) { int num = 29; System.out.println("The given number is: " + num); System.out.println(num + " is prime ? " + checkPrimeFunc(num)); } }
執行上述程式碼後,將顯示以下結果 -
The given number is: 29 29 is prime ? true
廣告