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 the`Scanner`

class for reading input from the user.

**Main Class and Method:**- The program defines a public class named
`Main`

and the`main`

method, 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:`i`

is used for looping.`n`

will store the user input specifying the upper limit for finding prime numbers.`temp`

is used as a flag to indicate whether a number is prime.`temp1`

is initialized to 1 and is used to check each number up to`n`

.

**Input from User:**- A
`Scanner`

object`sc`

is 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
`while`

loop runs from 1 up to`n`

(inclusive) using`temp1`

as the loop variable. - For each value of
`temp1`

, an inner`for`

loop runs from 2 to`temp1/2`

. If`temp1`

is divisible by any number in this range (`i`

),`temp`

is 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
`temp`

remains 0 (indicating no divisors were found other than 1 and itself),`temp1`

is identified as a prime number and printed. `temp1`

is then incremented to check the next number.

- After the inner loop, if
**Loop Continuation:**- The process continues until all numbers from 1 to
`n`

have been checked.

- The process continues until all numbers from 1 to