Maison >Java >javaDidacticiel >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.
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.
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.
É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.
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.
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.
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."); } } }
Odd Prime Pairs are: (7 , 23) (11 , 19) (13 , 17) 30 is a Goldbach number.
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.
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; } } }
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!