Prime Number Program in Java using Scanner

Prime Number Program in Java using Scanner | A natural number that has only two factors ( 1 and itself ) is called a prime number. For example- 3 is a prime number because it has only two factors 1 and 3. Similarly, 6 is not a prime number because it has more than 2 factors that are 1, 2, 3, and 6.

Note:- All negative numbers, 0 and 1 are not the prime numbers.

Java Program to Check Prime Number using Scanner

In this program, we will use the for loop to check if the given number is a prime number or not.

import java.util.Scanner;

public class SimplePrimeNoProgram {

  public static boolean isPrime(int number){

    // All negative numbers, 0 and 1 
    // are not a prime number
    if(number<=1) return false;

    // check for remaining
    for(int i=2; i<number; i++)
        if(number%i == 0) 
            return false;

    return true;
  }

  public static void main(String[] args) {

    // declare variables
    int number = 0;
    boolean flag = false;

    // create Scanner class object
    Scanner scan = new Scanner(System.in);

    // read number
    System.out.print("Enter a number:: ");
    number = scan.nextInt();

    // check number is prime number or not
    flag  = isPrime(number);

    // display result
    if(flag) // true
       System.out.println(number+
                " is a prime number");
    else 
       System.out.println(number+
                " is not a prime number");

    // close Scanner class object
    scan.close();
  }
}

Output for the input values test-case-1:-

Enter a number:: 5
5 is a prime number

Output for the input values test-case-2:-

Enter a number:: 25
25 is not a prime number

In the previous program, we used the For Loop to check prime numbers or not but in this program, we will use the While Loop to check prime numbers in java.

import java.util.Scanner;

public class SimplePrimeNoProgram {

  public static boolean isPrime(int number) {

    // declare variables
    int i = 2;

    // negative numbers, 0 and 1 
    // are not a prime number
    if(number<=1) return false;

    // loop to repeat the process
    while(i<number) {
      if(number%i == 0) 
        return false;
      i++;
    }

    return true;
  }

  public static void main(String[] args) {

    // declare variables
    int number = 0;
    boolean flag = false;

    // create Scanner class object
    Scanner scan = new Scanner(System.in);

    // read number
    System.out.print("Enter a number:: ");
    number = scan.nextInt();

    // check number is prime number or not
    flag  = isPrime(number);

    // display result
    if(flag) // true
       System.out.println(number+
                " is a prime number");
    else 
       System.out.println(number+
                " is not a prime number");

    // close Scanner class object
    scan.close();
  }
}

The above programs give less performance, their time complexity was O(n). We can optimize the above programs. The time complexity for the below method is O(√n).

import java.util.Scanner;

public class PrimeNumber {

  public static boolean isPrime(int number){

     // negative numbers, 0 and 1 are 
     // not a prime number
     if( number <= 1 ) return false;

     // 2 and 3 are prime numbers
     if( number <= 3 ) return true;

     // numbers divisible by 2 and 3
     // are not prime number
     if(number%2==0 || number%3==0)
         return false;

     // logic for remaining numbers
     for(int i=5; i<=Math.sqrt(number); i=i+6){
        if(number%i == 0 || number%(i+2) == 0) 
            return false;
     }

     return true;
  }

  public static void main(String[] args) {

      // declare variables
      int number = 0;
      boolean isPrime = false;

      // create Scanner class object
      Scanner scan = new Scanner(System.in);

      // read number
      System.out.print("Enter a number:: ");
      number = scan.nextInt();

      // check number is prime number or not
      isPrime = isPrime(number);

      // display result
      if(isPrime) // true
         System.out.println(number+
                  " is a prime number");
      else 
         System.out.println(number+
                  " is not a prime number");

      // close Scanner class object
      scan.close();
  }
}

Prime Number Program in Java using Scanner

Here, we will use recursion methods to check if a given number is a prime number or not in java. A function/method that contains a call to itself is called the recursive function/method. A technique of defining the recursive function/method is called recursion.

import java.util.Scanner;

public class PrimeNumber {

  public static boolean isPrime(int number, int i){

     // negative numbers, 0 and 1 are 
     // not a prime number
     if( number <= 2 )
       return (number != 2) ? false : true;

     if( number % i == 0 ) return false;
     if( i*i > number ) return true;

     // check for the next
     return isPrime(number, i+1);
  }

  public static void main(String[] args) {

      // declare variables
      int number = 0;
      boolean flag = false;

      // create Scanner class object
      Scanner scan = new Scanner(System.in);

      // read number
      System.out.print("Enter a number:: ");
      number = scan.nextInt();

      // check number is prime number or not
      flag = isPrime(number, 2);

      // display result
      if(flag) // true
          System.out.println(number+
                  " is a prime number");
      else 
          System.out.println(number+
                   " is not a prime number");

      // close Scanner class object
      scan.close();
   }
}

Output for the input values test-case-1:-

Enter a number:: 9
9 is not a prime number

Output for the input values test-case-2:-

Enter a number:: 11
11 is a prime number

If you enjoyed this post, share it with your friends. Do you want to share more information about the topic discussed above or do you find anything incorrect? Let us know in the comments. Thank you!

Leave a Comment

Your email address will not be published. Required fields are marked *