Java program to check if a string is a prime number or not:
In this post, we will learn how to check if a string is a prime number or not in Java. The program will take a string as input from the user, verify if it is a prime number string or not and print one result to the user.
We can use any loop to solve this problem. A number is called a prime number if it is greater than 1 and it is divisible by 1 and the number itself. If we can divide the number by any other number, it will not be a prime number.
How to check if a number is prime or not programmatically:
If we want to check if a number is a prime number or not programmatically, we have to run one loop. The loop will run from 2 to number/2 and for each value, it will check if it can divide the number. If yes, it will not be a prime number. Else, it will be a prime number.
We can also run from 2 to the square root of the number. This will reduce the number of steps and for a large number, it will be faster than the previous method.
Let’s learn how to write these algorithms in Java :
Method 1: By using a for loop:
We can use a for loop and run from 2 to number/2. On each iteration, it will check if any value can divide the number or not. If yes, it will not be a prime number.
We will take the value as a string and convert it to a number first.
import java.util.Scanner;
class Main {
public static boolean isPrime(String n) {
int number = Integer.parseInt(n);
if (number == 0 || number == 1) return false;
for (int i = 2; i <= number / 2; i++) {
if (number % i == 0) return false;
}
return true;
}
public static void main(String[] args) {
String num;
Scanner sc = new Scanner(System.in);
System.out.println("Enter the number: ");
num = sc.next();
if (isPrime(num)) {
System.out.println("It is a Prime number.");
} else {
System.out.println("It is not a Prime number.");
}
}
}
In this example,
- sc is a Scanner object to read the user input values.
- We are asking the user to enter the number. The number is stored in the string variable num.
- isPrime is a method to check if a string is prime or not. It takes a string value as its parameter and returns one boolean value.
- We are parsing the integer value at the start of this method and this value is stored in the variable number.
- If the value of a number is equal to 0 or 1, it returns false i.e. it is not a prime number.
- It runs one for loop from i = 2 to i = number/2 and for each value of i, it checks if it can divide the number or not. If yes, it returns false i.e. it is not a prime number.
- Once the loop ends, it returns true, i.e. the number is a prime number.
Method 2: By using a while loop:
We can also use a while loop to write the same program. It will be similar to the above program. The only difference is that we will initialize a variable before the loop starts and the increment of i will be at the end of each iteration.
import java.util.Scanner;
class Main {
public static boolean isPrime(String n) {
int number = Integer.parseInt(n);
if (number == 0 || number == 1) return false;
int i = 2;
while (i <= number / 2) {
if (number % i == 0) return false;
i++;
}
return true;
}
public static void main(String[] args) {
String num;
Scanner sc = new Scanner(System.in);
System.out.println("Enter the number: ");
num = sc.next();
if (isPrime(num)) {
System.out.println("It is a Prime number.");
} else {
System.out.println("It is not a Prime number.");
}
}
}
Method 3: By iterating up to the square root of the number:
We can also iterate from 2 to the square root of the number. It will give us the same result. The advantage of this approach is that the number of iterations will be reduced.
import java.util.Scanner;
class Main {
public static boolean isPrime(String n) {
int number = Integer.parseInt(n);
if (number == 0 || number == 1) return false;
int i = 2;
while (i <= Math.sqrt(number)) {
if (number % i == 0) return false;
i++;
}
return true;
}
public static void main(String[] args) {
String num;
Scanner sc = new Scanner(System.in);
System.out.println("Enter the number: ");
num = sc.next();
if (isPrime(num)) {
System.out.println("It is a Prime number.");
} else {
System.out.println("It is not a Prime number.");
}
}
}
To find the square root of the number, we are using Math.sqrt() method. If you run this program, it will give similar output.
You might also like:
- Java Math signum function explanation with examples
- Java program to check if a number is Kaprekar number or not
- Two different ways in Java to find all duplicate string characters
- Java String.replace() method explanation with example
- Java StringBuffer.reverse() method explanation with examples
- Java program to check if a string is empty or not
- How to reverse each word of a string in Java
- Java program to check if a string is palindrome or not
- Java program to check if a given number is a prime number or not
- Java program to find all prime numbers from 1 to N