Python Program to Check number is prime or not

In this python program, we will find whether a number is prime or not. Here we will use the if-else statement once again and the new thing we are going to use is for loop.

Here we take the modulus(%) of the given number(num variable) with every number(i variable) less than the num. And if the remainder shows 0 i.e the variable num is divided by the variable i without leaving any remainder then the variable i is the factor of the variable num and hence it prints the variable num is not a prime number and then breaks from the for loop because there is no need to check for other numbers(variable i). And if none of the numbers between the range is the factor of the variable num then it is a prime number.


Every statement is explained with use of comments.

# taking input from user
num = int(input("Enter a number: "))         

# the prime no. are greater than 1
if num > 1:                                 
    # going through every number btw 2 and num-1
    for i in range(2,num):                 
        # checking the num is divisible by i.
        if num % i == 0:                    
            # prints num is not a prime number
            print(num,"is not a prime number.")                
        # prints num is a prime number
        print(num,"is a prime number.")       
    print(num,"is not prime number.")


Enter a number: 15
15 is not a prime number.

Optimized prime number program

We are checking whether the num variable is divisible by any number between 2 and num-1. We can optimize it and check for only those numbers which are between 2 and num/2.
Hence, we just need change one statement in the program. We have to change the parameters passed inside the range function.

for i in range(2,num//2):

This way we don't have to check for unnecessary numbers.

We can optimize this program some more by taking the numbers between 2 and the square root of num (sqrt(num)). This is because a composite number(not prime) must have a factor less than the square root of that number otherwise the number is prime.

Again, we have to change the parameters passed inside the range function.

for i in range(2,math.floor(math.sqrt(num))+1):

To use the floor() and sqrt() function we have to import the math package.

import math

Now, we know how to check whether a number is prime or not. We can use this program to print all prime numbers in an Interval.

The following two tabs change content below.

Amit Rawat

Founder and Developer at SpiderLabWeb
I love to work on new projects and also work on my ideas. My main field of interest is Web Development.

You may also like...