Heim  >  Artikel  >  Java  >  Wie kann man in Java überprüfen, ob eine Zahl eine Goldbach-Zahl ist?

Wie kann man in Java überprüfen, ob eine Zahl eine Goldbach-Zahl ist?

王林
王林nach vorne
2023-08-26 17:25:14720Durchsuche

Wie kann man in Java überprüfen, ob eine Zahl eine Goldbach-Zahl ist?

Wenn eine Zahl als Addition zweier Paare ungerader Primzahlen ausgedrückt werden kann, dann wird die Zahl Goldbach-Zahl genannt.

Wenn wir die oben genannten Bedingungen befolgen, können wir feststellen, dass jede gerade Zahl größer als 4 eine Goldbach-Zahl ist, da sie ein beliebiges Paar ungerader Primzahlen enthalten muss. Aber ungerade Zahlen sind unbefriedigend, weil wir wissen, dass die Summe zweier Zahlen niemals ungerade sein kann.

In diesem Artikel erfahren Sie, wie Sie mithilfe der Programmiersprache Java überprüfen können, ob es sich bei einer Zahl um eine Goldbach-Zahl handelt.

Zeigen Sie einige Beispiele

Beispiel 1

Geben Sie als Zahl 50 ein.

Testen wir es mit der Logik der Goldbach-Zahl.

Suchen wir nach Paaren ungerader Primzahlen, erhalten wir:

(3 , 47)
(7 , 43)
(13 , 37)
(19 , 31)

Wie wir hier bemerkt haben, erhalten wir einige Paare ungerader Primzahlen, deren Summe 50 beträgt.

Daher ist 50 eine Goldbach-Zahl.

Beispiel 2

Geben Sie als Zahl 47 ein.

Testen wir es mit der Logik der Goldbach-Zahl.

Wenn wir ungerade Primzahlpaare finden, erhalten wir − Keine Primzahlpaare verfügbar

Wie wir hier bemerkt haben, erhalten wir keine ungeraden Primzahlpaare, deren Summe 47 ergibt.

Daher ist 47 keine Goldbach-Zahl.

Einige andere Beispiele für Goldbach-Zahlen sind 20, 52, 48, 122 usw.

Algorithmus

  • Schritt 1 – Erhalten Sie eine Ganzzahl per Initialisierung oder Benutzereingabe.

  • Schritt 2 – Dann deklarieren Sie zwei Arrays, die nacheinander Primzahlen speichern.

  • Schritt 3 – Dann starten Sie die Iteration, bei der zwei Paare ungerader Primzahlen aus den beiden Arrays gefunden werden, deren Addition mit der Eingabezahl identisch ist.

  • Schritt 4 – Wenn wir keine ungeraden Primzahlenpaare erhalten, können wir ausdrucken, dass die angegebene Zahl keine Goldbach-Zahl ist.

  • Schritt 5 – Wenn wir einige Paare erhalten, drucken wir diese Paare einfach zusammen mit der resultierenden Meldung aus, dass die eingegebene Zahl eine Goldbach-Zahl ist.

Mehrere Methoden

Wir bieten Lösungen auf unterschiedliche Weise.

  • Durch Verwendung statischer Eingabewerte

  • Durch die Verwendung benutzerdefinierter Methoden

Schauen wir uns das Programm und seine Ausgabe einzeln an.

Methode 1: Statische Eingabewerte verwenden

Bei dieser Methode wird ein ganzzahliger Wert im Programm initialisiert und dann können wir mithilfe eines Algorithmus prüfen, ob eine Zahl eine Goldbach-Zahl ist.

Beispiel

import java.io.*;
import java.util.*;
public class Main {
   public static void main(String args[]) {
      //declare all the variables
      int i, j, n, temp, b=0, c=0, sum=0;

      //declare a variable which stores the input number
      //assign a value to it
      int inputNumber=30;

      //declare a temporary variable which stores the input value
      temp=inputNumber;

      //declare two arrays with the capacity equal to input number
      int array1[]=new int[inputNumber];
      int array2[]=new int[inputNumber];

      //check whether the number is even or
      if(inputNumber%2!=0) {
         //if the input is not even then print it is not a Goldbach number
         System.out.println(inputNumber + " is not a Goldbach number.");
      }

      //if the input is even then proceed with further calculations
      else {

         //initiate the loop for finding the prime numbers
         for(i=1; i<=inputNumber; i++) {
            for(j=1; j<=i; j++) {
               if(i%j==0) {
                  c++;
               }
            }

            //find the odd prime numbers
            if((c==2)&&(i%2!=0)) {

               //stores odd prime numbers into first array
               array1[b]=i;

               //stores odd prime numbers into second array
               array2[b]=i;

               //increments the value of b by 1
               b++;
            }
            c=0;
         }
         //print the odd prime number pairs
         System.out.println("Odd Prime Pairs are: ");

         //loop for printing the value of ArrayStoreException
         for(i=0; i<b; i++) {
            for(j=i; j<b; j++) {

               //find the sum of two odd prime numbers
               sum=array1[i]+array2[j];

               //condition for comparing the sum value with input number
               if(sum==temp) {

                  //print pair of odd prime numbers
                  System.out.print("(" + array1[i]+" , "+array2[j] + ")");
                  System.out.println();
               }
            }
         }
         //print the final result if it is Goldbach number
         System.out.println(temp+" is a Goldbach number.");
      }
   }
}

Ausgabe

Odd Prime Pairs are:
(7 , 23)
(11 , 19)
(13 , 17)
30 is a Goldbach number.

Methode 2: Benutzerdefinierte Methode verwenden

In dieser Methode wird ein ganzzahliger Wert initialisiert und dann rufen wir die benutzerdefinierte Methode auf, indem wir diese Eingabenummer als Parameter übergeben.

Bei dieser Methode verwenden wir einen Algorithmus, um zu prüfen, ob eine Zahl eine GoldbachZahl ist.

Beispiel

import java.io.*;
import java.util.*;
public class Main {
   public static void main(String args[]) {
      //declare a variable which stores the input number
      //assign a value to it
      int inp=98;
      if(checkGoldbach(inp)) {

         //if true it is Goldbach number
         System.out.println(inp+" is a Goldbach number.");
      } else {
         //if false it is not a Goldbach number
         System.out.println(inp + " is not a Goldbach number.");
      }
   }
   //define the user defined method
   static boolean checkGoldbach(int inputNumber) {

      //declare all the variables
      int i, j, n, temp, b=0, c=0, sum=0;

      //declare a temporary variable which stores the input value
      temp=inputNumber;

      //declare two arrays with the capacity equal to input number
      int array1[]=new int[inputNumber];
      int array2[]=new int[inputNumber];

      //check whether the number is even or
      if(inputNumber%2!=0) {
         return false;
      }

      //if the input is even then proceed with further calculations
      else {

         //initiate the loop for finding the prime numbers
         for(i=1; i<=inputNumber; i++) {
            for(j=1; j<=i; j++) {
               if(i%j==0) {
                  c++;
               }
            }

            //find the odd prime numbers
            if((c==2)&&(i%2!=0)) {

               //stores odd prime numbers into first array
               array1[b]=i;

               //stores odd prime numbers into second array
               array2[b]=i;

               //increments the value of b by 1
               b++;
            }
            c=0;
         }
         //print the odd prime number pairs
         System.out.println("Odd Prime Pairs are: ");

         //loop for printing the value of Arrays
         for(i=0; i<b; i++) {
            for(j=i; j<b; j++) {

               //find the sum of two odd prime numbers
               sum=array1[i]+array2[j];

               //condition for comparing the sum value with input number
               if(sum==temp) {

                  //print pair of odd prime numbers
                  System.out.print("(" + array1[i]+" , "+array2[j] + ")");
                  System.out.println();
               }
            }
         }
         return true;
      }
   }
}

Ausgabe

Odd Prime Pairs are:
(19 , 79)
(31 , 67)
(37 , 61)
98 is a Goldbach number.

In diesem Artikel haben wir untersucht, wie man mit drei verschiedenen Methoden überprüft, ob eine Zahl in Java eine Goldbach-Zahl ist.

Das obige ist der detaillierte Inhalt vonWie kann man in Java überprüfen, ob eine Zahl eine Goldbach-Zahl ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen