Maison >Java >javaDidacticiel >Comment vérifier si un numéro est un numéro de Goldbach en Java ?

Comment vérifier si un numéro est un numéro de Goldbach en Java ?

王林
王林avant
2023-08-26 17:25:14728parcourir

Comment vérifier si un numéro est un numéro de Goldbach en Java ?

Si un nombre peut être exprimé comme l'addition de deux paires de nombres premiers impairs, alors le nombre est appelé numéro de Goldbach.

Si nous suivons les conditions ci-dessus, nous pouvons alors constater que tout nombre pair supérieur à 4 est un nombre de Goldbach, car il doit avoir n'importe quelle paire de nombres premiers impairs. Mais les nombres impairs ne sont pas satisfaisants car nous savons que la somme de deux nombres ne peut jamais être impaire.

Dans cet article, nous apprendrons comment vérifier si un nombre est un nombre de Goldbach à l'aide du langage de programmation Java.

Montrez quelques exemples

Exemple 1

Entrez le nombre 50.

Testons-le en utilisant la logique du nombre de Goldbach.

En recherchant des paires de nombres premiers impairs, nous obtenons :

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

Comme nous l'avons remarqué ici, nous obtenons des paires de nombres premiers impairs dont la somme est égale à 50.

Par conséquent, 50 est un nombre de Goldbach.

Exemple 2

Entrez le numéro 47.

Testons-le en utilisant la logique du nombre de Goldbach.

En trouvant des paires premières impaires, nous obtenons − Aucune paire première disponible

Comme nous l’avons remarqué ici, nous n’obtenons pas de paires premières impaires dont la somme est égale à 47.

Par conséquent, 47 n’est pas un nombre de Goldbach.

Quelques autres exemples de nombres de Goldbach incluent 20, 52, 48, 122, etc.

Algorithme

  • Étape 1 - Obtenez un entier via l'initialisation ou la saisie de l'utilisateur.

  • Étape 2 - Déclarez ensuite deux tableaux qui stockent les nombres premiers consécutivement.

  • Étape 3 - Commencez ensuite l'itération où deux paires de nombres premiers impairs seront trouvées à partir des deux tableaux dont l'addition est la même que le nombre d'entrée.

  • Étape 4 - Si nous n'obtenons aucune paire de nombres premiers impairs, nous pouvons alors imprimer que le nombre donné n'est pas un nombre de Goldbach.

  • Étape 5 - Si nous obtenons des paires, nous imprimons simplement ces paires avec le message résultant indiquant que le nombre saisi est un nombre de Goldbach.

Plusieurs méthodes

Nous proposons des solutions de différentes manières.

  • En utilisant des valeurs d'entrée statiques

  • En utilisant des méthodes définies par l'utilisateur

Regardons le programme et sa sortie un par un.

Méthode 1 : Utiliser des valeurs d'entrée statiques

Dans cette méthode, une valeur entière sera initialisée dans le programme puis en utilisant un algorithme, nous pourrons vérifier si un nombre est un nombre Goldbach.

Exemple

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.");
      }
   }
}

Sortie

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

Méthode 2 : Utiliser la méthode définie par l'utilisateur

Dans cette méthode, une valeur entière est initialisée puis nous appelons la méthode définie par l'utilisateur en passant ce numéro d'entrée en paramètre.

Dans cette méthode, nous utiliserons un algorithme pour vérifier si un nombre est un nombre Goldbach.

Exemple

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;
      }
   }
}

Sortie

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

Dans cet article, nous avons examiné comment vérifier si un nombre est un nombre de Goldbach en Java en utilisant trois méthodes différentes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer