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

更新於: 2024-08-01

16K+ 瀏覽量

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告