In this java program, we will learn about how to check whether a number can be expressed as sum of two prime numbers. We will also learn to check whether a number is prime number or not.
First of all, we have to understand fundamentals of prime numbers.
- A Prime number is a positive number greater than 1 that is only divisible by either 1 or itself.
- Any non-prime number can be expressed as a factor of prime numbers.
How to check whether a number is prime number or not ?
Let N be the number for primality testing. Here, we will use brute force approach by testing whether N is a multiple of any integer between 2 and N/2. This is the most basic method of checking the primality of a given integer N and is called trial division method. Here is a java method to test prime numbers. It returns true of given number is prime number otherwise false.
static boolean IsPrime(int num) {
boolean isPrimeNumber = true;
for (int i = 2; i <= num / 2; ++i) {
if (num % i == 0) {
isPrimeNumber = false;
break;
}
}
return isPrimeNumber;
}
To understand this java program, you should have understanding of the following Java programming concepts:
Java Program to Check Whether a Number can be Expressed as Sum of Two Prime Numbers
public class PrimeSum {
public static void main(String[] args) {
int N;
boolean isPrimeSum = false;
Scanner scanner = new Scanner(System.in);
System.out.println("Enter a number");
N = scanner.nextInt();
for (int i = 2; i <= N / 2; i++) {
// Check if i is prime number
if(IsPrime(i)) {
// Check if N-i is prime number also
if(IsPrime(N-i)) {
System.out.format("%d = %d + %d\n", N,i,N-i);
isPrimeSum = true;
}
}
}
if (!isPrimeSum) {
System.out.format("%d cannot be expressed as
sum of two prime numbers.");
}
}
// Returns true if num is prime otherwise false.
static boolean IsPrime(int num) {
boolean isPrimeNumber = true;
for (int i = 2; i <= num / 2; ++i) {
if (num % i == 0) {
isPrimeNumber = false;
break;
}
}
return isPrimeNumber;
}
}
Output
Enter a number 24 24 = 5 + 19 24 = 7 + 17 24 = 11 + 13
- In above java program, we created a method called "IsPrime" to check whether a given number is prime number or not. This method returns true if number is prime otherwise false.
- For a given number N, a for loop will iterate from 2 to N/2 and for every number i it check whether i is prime number of not.
- If i is prime number then we check whether N-i is prime or not.
- If N-i is also prime number then, N can be expressed as sum of two prime numbers i and N-i.