In this article, we will learn how to take a number as user input and check if the number is a prime number or not using for loop and while loop in Python.

Before starting, let’s learn a bit about prime numbers.

## What is a Prime Number?

A **prime number** is a positive number that is greater than 1 and cannot be divided by any positive number except 1 and by itself.

Examples of prime numbers are, 2, 3, 5, 7, 11 etc.

A prime number can have only two factors. One will be 1 and the other will be the number itself. Example: 13/1 = 13 and 13/13 = 1, so it is a **prime number** since it have only **two** factors 1, 13

## How to find a prime number?

To find a prime number, we have to follow these steps:

- First, we will check if the number is greater than one (1) or not.
- If yes, then we will divide the number between the range 2 upto the number itself. For example, if the number is 13, we will start from 13/2, 13/3, 13/4, and so on until 13/12.

If the number 13 is divisible by any number between 2 to 12, then it’s not a prime number. If not, then it is a prime number.

Note: We start dividing it from 2 because every number can be divided by 1.

Here, to find a prime number we will use:

- for… else and if statement, and
- while loop

## Prime Number Program in Python using for loop

Example to check if a number is a prime number or not in python from user input.

```
num = int(input('Enter a number: '))
if num > 1:
for i in range(2, num):
if(num % i) == 0:
print('Number is not Prime')
break
else:
print('Number is Prime')
```

**Output:**

```
Enter a number: 13
Number is Prime
```

Here, we first take the user input using `input()`

method. We wrap it around with an `int()`

to convert the user input to an integer.

Next, we check if the number is greater then 1. If **yes**, we proceed to the next `for else`

statement.

We then check for the factors between 2 to the number itself using `range(2, num)`

.

Note: Since all numbers can be divided by 1, so we used 2 as the start inrange()function.

On each iteration, we try to find the factor using `(num % i) == 0`

. If any number satisfies this condition, then the number is not a Prime number and we exit the program using `break`

statement. If not, the number is a prime number.

## Prime Number Program in Python using while loop

Here, we will use `while`

loop to check if the user input is a prime number or not.

```
i=2
num = int(input('Enter a number'))
flag=True
while i < num:
if(num % i) == 0:
flag = False
i = i+1
if flag:
print('Number is a Prime Number')
else:
print('Number is not a Prime Number')
```

**Output:**

```
Enter a number: 7
Number is a Prime Number
```

Here, we have used a **flag** variable that is set to `True`

initially.

We have set `i`

variable to 2, because it is the starting range to find the factor in the program.

The variable `i`

is like an index value, which will increase each time the program runs through the while loop.

Next, since any number less than 1 or equal to 1 is not a prime number, so we first check if the `num`

is **greater** than 1 or not.

If the input number is greater than **1**, then the `while`

loop will run and on each iteration **+1** will be added to `i`

variable.

And if the program finds any factor between the given range, the `flag`

will be set to **False**.

And outside the `while`

loop,

- If the flag is
`True`

, the number is a prime number. - If the flag is
`False`

, the number is NOT a prime number.

## Print Prime Number within a given range (between 1 to 100) in python

Here we will print all the prime numbers between the range 1 to 100 in python.

```
lower_val = 1
higher_val = 100
prime_num = []
for num in range(lower_val, higher_val+1):
if(num > 1):
for i in range(2, num):
if(num % i) == 0:
break
else:
prime_num.append(num)
print(prime_num)
```

**Output:**

```
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47,
53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
```

Here, we set the lower and upper value within which we will find the prime numbers.

We set the range for the first for loop using `range()`

, we set `higher_val+1`

to include the 100 number.

In the second `for`

loop, we divide the input number by all the numbers with the range 2 to number, `range(2, num)`

.

If we find any factor, we use the `break`

statement, to exit the loop. If not, the number gets appended to the empty list `prime_num`

.

At last, we print out the numbers in `prime_num`

python list.

**Conclusion**: Here, we have learned, how to write python programs to find all prime numbers in within a given range, and how to use the for and while loop to check for prime numbers in python.

**Related Topics:**

Python – Check if list is empty or not