In this tutorial, we are going to learn writing java program to print all the prime numbers that are smaller than or equal to the number given as an input by the user.
Problem Statement
For any number that is input by the user, we have to print all the prime numbers. For example
Case1: If the user inputs number 12
then the output should be ‘2, 3, 5, 7, 11’.
Case2: If the user inputs a number 51.
then the output should be ‘2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47 ’.
What is Prime Number?
Prime Numbers are the numbers that have only 2 factors 1 and the number itself. It is only defined for the number which is greater than ‘1’. ‘2’ is the smallest prime number.
Some examples
- 5 is a prime number because only factors of 5 are ‘1 and 5’.
- 11 is a prime number because only factors of 11 are ‘1 and 11’.
- 10 is not prime because the factors of 10 are ‘ 1,2,5 and 10’.
Java Program to Print First n Prime Number
import java.util.*;
public class Main
{
public static void main(String[] args) {
int i=0,n,temp,temp1=1;
Scanner sc = new Scanner(System.in);
System.out.println("Give input to find Prime number before ");
n= sc.nextInt();
System.out.println("Prime numbers are before "+n);
while(temp1<=n){
temp=0;
for(i=2;i<=(temp1/2);i++){
if(temp1%i==0)
{
temp=1;
break;
}
}
if(temp==0){
System.out.println(temp1);
}
temp1++;
}
}
}
Output
Give input to find Prime number before
5
Prime numbers are before 5
1
2
3
5
Explanation
The input number is 9, so our program will check all the numbers smaller than 9 and greater than 0. The numbers that do not have any other factor other than 1 and itself, i.e. prime numbers which are smaller than 9 are 1,2,3,5, and 7.
Program Explanation
- Imports and Setup:
import java.util.*;imports the Java utility package, which includes theScannerclass for reading input from the user.
- Main Class and Method:
- The program defines a public class named
Mainand themainmethod, which is the entry point of any Java application.
- The program defines a public class named
- Variable Initialization:
int i = 0, n, temp, temp1 = 1;declares and initializes several integer variables:iis used for looping.nwill store the user input specifying the upper limit for finding prime numbers.tempis used as a flag to indicate whether a number is prime.temp1is initialized to 1 and is used to check each number up ton.
- Input from User:
- A
Scannerobjectscis created to read input from the console. - The program prompts the user to enter the value of
n, which is the limit up to which prime numbers will be found.
- A
- Prime Number Detection:
- A
whileloop runs from 1 up ton(inclusive) usingtemp1as the loop variable. - For each value of
temp1, an innerforloop runs from 2 totemp1/2. Iftemp1is divisible by any number in this range (i),tempis set to 1, and the loop breaks.- The division by 2 in the loop condition (
temp1/2) is an optimization to reduce the number of checks required, as a number cannot have factors larger than its half (excluding itself).
- The division by 2 in the loop condition (
- A
- Prime Check and Output:
- After the inner loop, if
tempremains 0 (indicating no divisors were found other than 1 and itself),temp1is identified as a prime number and printed. temp1is then incremented to check the next number.
- After the inner loop, if
- Loop Continuation:
- The process continues until all numbers from 1 to
nhave been checked.
- The process continues until all numbers from 1 to