Question
A Goldbach number is a positive even integer that can be expressed as the sum of two odd primes.
Note: All even integer numbers greater than 4 are Goldbach numbers.
Example:
6 = 3 + 3
10 = 3 + 7
10 = 5 + 5
Hence, 6 has one odd prime pair 3 and 3. Similarly, 10 has two odd prime pairs, i.e. 3, 7 and 5, 5.
Write a program to accept an even integer ‘N’ where N > 9 and N < 50. Find all the odd prime pairs whose sum is equal to the number ‘N’.
Test your program with the following data and some random data:
Example 1:
INPUT:
N = 14
OUTPUT:
Prime pairs are:
3, 11
7, 7
Example 2:
INPUT:
N = 30
OUTPUT:
Prime numbers are:
7, 23
11, 19
13, 17
Example 3:
INPUT:
N = 17
OUTPUT:
Invalid input. Number is odd.
Example 4:
INPUT:
N = 126
OUTPUT:
Invalid input. Number is out of range.
Share code with your friends
Share on whatsapp
Share on facebook
Share on twitter
Share on telegram
Code
import java.util.Scanner;
public class GoldbachNumber
{
public static boolean isPrime(int n)
{
int count = 0,i=0;
for(i = 2; i <= n/2; i++)
{
if(n % i == 0)
{
count++;
}
}
if(count == 0)
{
return true;
}
else
{
return false;
}
}
public static void main(String args[])
{
int n = 0,p=3,q=0;
Scanner sc=new Scanner(System.in);
System.out.print("N = ");
n =sc.nextInt();
if(n % 2 != 0)
{
System.out.println("Invalid input. Number is odd.");
return;
}
else if(n < 10 || n > 49)
{
System.out.println("Invalid input. Number is out of range.");
return;
}
System.out.println("Prime pairs are:");
while(p < n)
{
q = n - p;
if(isPrime(p) && isPrime(q) && p <= q)
{
System.out.println(p + ", " + q);
}
p += 2;
}
}
}