Summary: In this tutorial, we will learn three different methods to check whether the given number is prime or not using the Java language.
A number is said to be a prime number if it is only divisible by 1 and itself.
Examples: 5, 7, 11, 17 etc.
Method 1: Using For Loop
In this method, we use for loop to iterate through the numbers between 1 and n/2 and check if any of them is a factor of the n.
If so, then then n is not prime, else it is a prime number.
import java.util.Scanner;
public class Prime {
public static void main(String args[]){
Scanner in = new Scanner(System.in);
System.out.print("Enter a number: ");
int num = in.nextInt();
boolean flag = true; //Assuming that input is Prime
//Loop through all numbers between 1 and num
for(int i=2; i<(num/2); i++){
if(num%i == 0){
/*
*If num is divisible by any number other than 1 and itself-
*then, it is Not Prime
*/
flag = false;
break; //Since the num is not prime, so no use of iterating further
}
}
if(flag == true){
System.out.println("It's Prime");
} else {
System.out.println("Not Prime");
}
}
}
Output:
Enter a number: 7
It’s Prime
Method 2: Using Function
In this method, we write the logic used in the above method inside a separate function.
The function checks the number whether it is prime or not. If the number is prime it will return true
otherwise false
.
import java.util.Scanner;
public class Prime {
public static void main(String args[]){
Scanner in = new Scanner(System.in);
System.out.print("Enter a number: ");
int num = in.nextInt();
//pass the number to the function
if(isPrime(num)){
System.out.println("It's Prime");
} else {
System.out.println("Not Prime");
}
}
private static boolean isPrime(int num){
boolean flag = true;
for(int i=2; i<(num/2); i++){
if(num%i == 0){
//If num is divisible by i, it is not Prime.
flag = false;
break;
}
}
return flag;
}
}
Output:
Enter a number: 3
It’s Prime
Method 3: Using Recursion
We can also check whether a number is prime or not using a recursive function.
To the recursive function, we pass the next potential factor as i
and check if it is actually the factor of the number (i.e. n%i == 0
), if so then we return false
otherwise, we increment i
and recursively call the function until i=n/2
.
If the value of i
in the recursive call successfully reaches beyond n/2
, then the input number is prime otherwise not.
import java.util.*;
class Main {
public static void main(String args[]){
Scanner in=new Scanner(System.in);
System.out.print("Enter a number: ");
int num = in.nextInt();
//call the recursive function with i=2
if(isPrime(num, 2))
System.out.println("It's Prime");
else
System.out.println("Not a prime");
}
//recursive function: num=number_to_be_checked, i=potential_factor_of_num
private static boolean isPrime(int num, int i){
if(i==1 || i==2 || i> num/2)
return true;
else if(num%i == 0)
return false;
//recursive call
return isPrime(num, i+1);
}
}
Output:
Enter a number: 7
It’s Prime
These were the three different ways to check prime number using the Java programming language.