- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How To Check Whether a Number is a Goldbach Number or Not in Java?
A number is said to be a Goldbach number, if the number can be expressed as the addition of two odd prime number pairs.
If we follow the above condition, then we can find that every even number larger than 4 is a Goldbach number because it must have any pair of odd prime number pairs. But the odd numbers are not satisfying because we know the addition of two numbers can never be an odd number.
In this article, we will see how to check if a number is a Goldbach number by using Java programming language.
To show you some instances
Instance-1
Input number is 50.
Let’s check it by using the logic of the Goldbach number.
Finding the odd prime number pairs, we get:
(3 , 47) (7 , 43) (13 , 37) (19 , 31)
As we notice here we got some pairs of odd prime numbers whose addition value is equal to the 50.
Hence, 50 is a Goldbach number.
Instance-2
Input number is 47.
Let’s check it by using the logic of the Goldbach number.
Finding the odd prime number pairs, we get− no pair available
As we notice here we didn’t get any pairs of odd prime numbers whose addition value is equal to the 47.
Hence, 47 is not a Goldbach number.
Some other examples of Goldbach numbers include 20, 52, 48, 122 etc.
Algorithm
Step 1 − Get an integer number either by initialization or by user input.
Step 2 − Then declare two arrays which consecutively store the prime number.
Step 3 − Then start iteration inside which it will find two odd prime number pairs from the two arrays whose addition is the same as input number.
Step 4 − If we will not get any odd prime numbers pair then we can print that the given number is not a Goldbach number.
Step 5 − If we will get some pairs then we just print those pairs along with the result message that the input number is a Goldbach Number.
Multiple Approaches
We have provided the solution in different approaches.
By Using Static Input Value
By Using User Defined Method
Let’s see the program along with its output one by one.
Approach-1: By Using Static Input Value
In this approach one integer value will be initialized in the program and then by using the algorithm we can check whether a number is a Goldbach number or not.
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.
Approach-2: By Using User Defined Method
In this approach, initialize an integer value and then we call a user defined method by passing this input number as parameter.
Inside the method we will check whether a number is a Goldbach number or not by using the algorithm.
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 explored how to check a number whether it is a Goldbach number or not in Java by using three different approaches.