Home  >  Article  >  Java  >  How to check if a number is a Goldbach number in Java?

How to check if a number is a Goldbach number in Java?

王林
王林forward
2023-08-26 17:25:14720browse

How to check if a number is a Goldbach number in Java?

If a number can be expressed as the addition of two pairs of odd prime numbers, the number is called Goldbach number.

If we follow the above conditions, then we can find that every even number greater than 4 is a Goldbach number, because it must have any pair of odd prime numbers. But odd numbers are unsatisfactory because we know that the sum of two numbers can never be odd.

In this article, we will learn how to check whether a number is a Goldbach number using Java programming language.

Show you some examples

Example 1

Enter the number 50.

Let us use the logic of Goldbach number to test it.

To find pairs of odd prime numbers, we get:

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

As we noticed here, we got some pairs of odd prime numbers whose summed value is equal to 50.

Therefore, 50 is a Goldbach number.

Example 2

Enter the number 47.

Let us use the logic of Goldbach number to test it.

To find odd prime pairs, we get − No prime pairs available

As we noticed here, we don't get any odd prime pairs whose sum equals 47.

Therefore, 47 is not Goldbach's number.

Some other examples of Goldbach numbers include 20, 52, 48, 122, etc.

algorithm

  • Step 1 - Get an integer via initialization or user input.

  • Step 2 - Then declare two arrays that store prime numbers consecutively.

  • Step 3 - Then start the iteration, in which two pairs of odd prime numbers will be found from the two arrays, the addition of which is the same as the input number.

  • Step 4 - If we don't get any odd prime number pairs, then we can print out that the given number is not a Goldbach number.

  • Step 5 - If we get some pairs, then we just print those pairs along with the resulting message that the input number is a Goldbach number.

Multiple methods

We provide solutions in different ways.

  • By using static input values

  • By using user-defined methods

Let’s look at the program and its output one by one.

Method 1: Using static input values

In this method, an integer value will be initialized in the program and then by using an algorithm we can check if a number is a Goldbach number.

Example

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

Output

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

Method 2: Using user-defined methods

In this method, an integer value is initialized and then we call the user-defined method by passing this input number as parameter.

In this method we will use an algorithm to check if a number is a Goldbach number.

Example

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

Output

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

In this article, we looked at how to check if a number is a Goldbach number in Java using three different methods.

The above is the detailed content of How to check if a number is a Goldbach number in Java?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:tutorialspoint.com. If there is any infringement, please contact admin@php.cn delete