> ## Content Index
> Fetch the complete content index at: https://linuxhandbook.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# Check Prime Number
- URL: https://linuxhandbook.com/check-prime-number/
- Published: 2024-08-22T12:39:47.000Z
- Updated: 2024-08-22T12:40:00.000Z
- Description: Here are a couple of bash scripts example to check whether a given number is prime or not.
- Author: Abhishek Prakash
- Tags: Bash Practice Exercises, #docs-col

Time to practice your Bash scripting.

## Exercise

In this Bash practice exercise, write a shell script that accepts an integer and then checks whether the provided number is prime number or not.

💡**Hint**: A prime number is the one that is only divisible by itself. 

Some sample prime numbers are:

```
2 3 5 7 11 13 17 19 23 ...
```

Remember that the zero and one are not prime number. 

### Test data

If you input 827, it should show:

```
827 is a prime number
```

If you input 21, you should get:

```
21 is not a prime number
```

✋

A programming challenge can be solved in more than one way. The solution presented here is for reference purposes only. You may have written a different program and it could be correct as well.

## Solution 1: Interactive bash script to check prime number

Here's a sample bash scripting for checking if a given number is prime or not.

Note that I used `$num/2` even though it won't generate a floating point number (21/2 will result in 10, not 10.5) but it will still work the same as we don't need exact division here.

```
#!/bin/bash

# Zero and one are not prime number
read -p "Enter a number greater than 1: " num

if [ "$num" -lt 2 ]; then
	echo "Number must be greater than 1"
	exit
fi
# Set a flag 
flag=0

# Loop to find if number is divisible by 2 or higher
# Loop until num/2 only as full loop is not required 
# to check if num is divisible or not 
# For example, 20 can only be divisible by 10, not 11

for ((i = 2; i <= $(($num/2)); ++i)); do
	if [ $(($num % $i)) -eq 0 ]; then
      		flag=1
      		break
    	fi
done

if [ $flag -eq 0 ]; then
	echo "$num is a prime number"
else
	echo "$num is not a prime number"
fi
```

## Solution 2: Non-interactive bash script to check prime number

The same bash script can be modified to use arguments supplied with the script (`prime.sh N`) instead of using read command that makes it interactive.

```
#!/bin/bash

num=$1

if [ "$num" -lt 2 ]; then
	echo "Number must be greater than 1"
	exit
fi
# Set a flag 
flag=0

# Loop to find if number is divisible by 2 or higher
# Loop until num/2 only as full loop is not required 
# to check if num is divisible or not 
# For example, 20 can only be divisible by 10, not 11

for ((i = 2; i <= $(($num/2)); ++i)); do
	if [ $(($num % $i)) -eq 0 ]; then
      		flag=1
      		break
    	fi
done

if [ $flag -eq 0 ]; then
	echo "$num is a prime number"
else
	echo "$num is not a prime number"
fi
```

## 📖 Concepts to revise

The solutions discussed here use some terms, commands and concepts and if you are not familiar with them, you should learn more about them.

- [read command](https://linuxhandbook.com/read-command/)
- [arithmetic operation in bash](https://linuxhandbook.com/bash-arithmetic-operators/)
- [if else in bash](https://linuxhandbook.com/if-else-bash/)
- for loop in bash

## 📚 Further reading

If you are new to bash scripting, we have a streamlined tutorial series on Bash that you can use to learn it from scratch or use it to brush up the basics of bash shell scripting.

[Bash Scripting Tutorial Series for Beginners \[Free\]Get started with Bash Shell script learning with practical examples. Also test your learning with practice exercises.![](https://linuxhandbook.com/content/images/size/w256h256/2021/08/Linux-Handbook-New-Logo.png)Linux HandbookAbhishek Prakash![](https://linuxhandbook.com/content/images/2023/09/bash.png)](https://linuxhandbook.com/bash/)