Java Program to Check A number is Prime or Not

Java Program to Check Whether a Number is Prime or Not

In this post, we will learn to check whether a number is prime or not. 

A prime number is a number which is divisible by only two numbers: 1 and itself. So, if any number is divisible by any other number, it is not a prime number.

Example 1: Using a for loop

public class Prime {

    public static void main(String[] args) {

        int num = 31;
        boolean flag = false;
        for(int i = 2; i <= num/2; ++i)
        {
            // condition for nonprime number
            if(num % i == 0)
            {
                flag = true;
                break;
            }
        }

        if (!flag)
            System.out.println(num + " is a prime number.");
        else
            System.out.println(num + " is not a prime number.");
    }
}

Output

31 is a prime number.

In the above program, for loop is used to determine if the given number num is prime or not. We only have to loop through 2 to half of num , because no number is divisible by more than its half.

Inside the for loop, we check if the number is divisible by any number in the given range (2..num/2). If it is, flag is set to true and we break out of the loop. This determines num is not a prime number.

If num  isn't divisible by any number, flag is false and num is a prime number.


 

Example 2: Using a while loop

public class Prime {

    public static void main(String[] args) {

        int num = 37, i = 2;
        boolean flag = false;
        while(i <= num/2)
        {
            // condition for nonprime number
            if(num % i == 0)
            {
                flag = true;
                break;
            }

            ++i;
        }

        if (!flag)
            System.out.println(num + " is a prime number.");
        else
            System.out.println(num + " is not a prime number.");
    }
}

Output

37 is not a prime number.

In the above program, while loop is used instead of a for loop. The loop runs until i <= num/2. On each iteration, whether num is divisble by i is checked and the value of i is incremented by 1.