Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaの配列の最大素数と最小素数の違い


問題の説明

すべての要素が1000000未満である整数の特定の配列を使用します。配列内の最大の素数と最小の素数の差を見つけます。

Array: [ 1, 2, 3, 4, 5 ]

Largest Prime Number = 5
Smallest Prime Number = 2

Difference = 5 - 3 = 2.

解決策

エラトステネスのふるいアプローチを使用します。これは、特定の数よりも小さいすべての素数を見つけるための効率的な方法です。次に、必要な差を得るために最大と最小の素数を計算します。

以下は、必要な出力を見つけるためのJavaのプログラムです。

public class JavaTester {

   static int MAX = 1000000;
   static boolean prime[] = new boolean[MAX + 1];

   public static void runSieveOfEratosthenes(){
      //reset prime flags to be true
      for(int i=0; i< MAX+1; i++) prime[i] = true;
      //set 1 as non-prime
      prime[1] = false;

      for (int p = 2; p * p <= MAX; p++) {
         // If prime[p] is not modified, then it is a prime
         if (prime[p]) {
            // Update all multiples of p
            for (int i = p * 2; i <= MAX; i += p) prime[i] = false;
         }
      }
   }

   public static int difference(int arr[]){
      int min = MAX + 2;
      int max = -1;
      for (int i = 0; i < arr.length; i++) {
         // check if the number is prime or not
         if (prime[arr[i]] == true) {
            // set the max and min values
            if (arr[i] > max) max = arr[i];
            if (arr[i] < min) min = arr[i];
         }
      }
      return max - min;
   }

   public static void main(String args[]){
      // run the sieve
      runSieveOfEratosthenes();
      int arr[] = { 1, 2, 3, 4, 5 };
      System.out.println(difference(arr));
   }
}

出力

3

  1. JREとJDKの違いは何ですか?

    JDK (Java Development Kit)には、JREを含むJavaアプリケーションを開発および実行するために必要なすべてのツールとライブラリが含まれています。 JRE Javaランタイム環境は、Javaプログラムの実行に必要なJVMおよびその他のライブラリを含むソフトウェアです。

  2. JavaとJavaScriptの違いは何ですか?

    Web開発者のJeremyKeithが2009年に述べたように、「JavaはJavaScriptに、ハムはハムスターになります」。そのアナロジーの正確さは議論の余地がありますが、その背後にある精神は確かです。JavaとJavaScriptは、共通の言語ルートを共有しているにもかかわらず、2つの非常に異なるプログラミング言語です。何年にもわたって、それらはもう少し重複するようになりましたが、JavaScriptは、Webサイトをインタラクティブにする主要なフロントエンド言語であり続け、Javaはサーバーサイドおよびアプリケーションプログラミングで引き続き人気があります。開発者を雇ったり、コーディ