# Java Program to Find Prime Numbers in a Range

A number is called a prime number if it has only two divisors, 1 and the number itself. So the only way to express the number as a product of two numbers is, n = n * 1. For example, 7 is a prime number while 8 is not since 8 = 2 * 4.

There are various algorithms to find whether a number is a prime number or not. One of the easiest and slowest methods is the trial division method. In this method we divide the number to be checked with numbers ranging from 2 to square root of the number and see whether any of them is a divisor (a number which can divide without leaving a remainder) of the number. The reason why we need to check only up to square root is because if n = a * b, **both **a and b cannot be greater than square root of n!

## Finding Prime Numbers in a Range of Natural Numbers

The following Java program finds all the prime numbers in a given range of natural numbers. This program uses the trial division technique for checking whether a number is prime or not. The program also prints out the total number of prime numbers found in the range.

/* Java program to find prime numbers in a range of natural numbers */ public class PrimeNumberRange { public static void main(String[] args) { long starting_number = 2L; long ending_number = 100L; long totals = 0; System.out.println("List of prime numbers between " + starting_number + " and " + ending_number); for (long current = starting_number; current <= ending_number; current++) { long sqr_root = (long) Math.sqrt(current); boolean is_prime = true; for (long i = 2; i <= sqr_root; i++) { if (current % i == 0) { is_prime = false; // Current is not prime. } } if (is_prime) { System.out.println(current); totals++; } } System.out.println("There are a total of "+totals+" prime numbers between "+starting_number+" and "+ending_number); } }

Note that for ranges containing large numbers, this algorithm is very slow due to the sheer number of mathematical operations required.