Java Program to Check Whether a Number is Prime or Not

In this article, you’ll learn to check whether a number is prime or not. This is done using a for loop and while loop in Java.

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: Program to Check Prime Number using a for loop

  1. public class Prime {
  2. public static void main(String[] args) {
  3. int num = 29;
  4. boolean flag = false;
  5. for(int i = 2; i <= num/2; ++i)
  6. {
  7. // condition for nonprime number
  8. if(num % i == 0)
  9. {
  10. flag = true;
  11. break;
  12. }
  13. }
  14. if (!flag)
  15. System.out.println(num + " is a prime number.");
  16. else
  17. System.out.println(num + " is not a prime number.");
  18. }
  19. }

When you run the program, the output will be:

29 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: Program to Check Prime Number using a while loop

  1. public class Prime {
  2. public static void main(String[] args) {
  3. int num = 33, i = 2;
  4. boolean flag = false;
  5. while(i <= num/2)
  6. {
  7. // condition for nonprime number
  8. if(num % i == 0)
  9. {
  10. flag = true;
  11. break;
  12. }
  13. ++i;
  14. }
  15. if (!flag)
  16. System.out.println(num + " is a prime number.");
  17. else
  18. System.out.println(num + " is not a prime number.");
  19. }
  20. }

When you run the program, the output will be:

33 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.