Python program to check if a number is Prime or not

A prime number is a natural number greater than 1 that has exactly two factors: 1 and itself. Numbers like 2, 3, 5, 7, 11 are prime numbers because they cannot be divided evenly by any other number except 1 and themselves.

Let's say the following is our input ?

7

The output should be as follows ?

Prime Number

Using Basic Loop Method

Let us check if a number is prime using a for loop by testing divisibility from 2 to half of the number ?

Example

# Number to be checked for prime
n = 5

# Check if the number is greater than 1
if n > 1:
    for i in range(2, int(n/2) + 1):
        if (n % i) == 0:
            print(n, "is not a prime number")
            break
    else:
        print(n, "is a prime number")
# If the number is less than 1, it's also not a prime number
else:
    print(n, "is not a prime number")
5 is a prime number

Using Square Root Optimization

Let us check if a number is prime using the sqrt() method. This is more efficient as we only need to check divisors up to the square root of the number ?

Example

from math import sqrt

# Number to be checked for prime
n = 9
flag = 0

if n > 1:
    for k in range(2, int(sqrt(n)) + 1):
        if (n % k == 0):
            flag = 1
            break
    if (flag == 0):
        print(n, " is a Prime Number!")
    else:
        print(n, " is Not a Prime Number!")
else:
    print(n, " is Not a Prime Number!")
9 is Not a Prime Number!

Using a Function

Here's a reusable function to check if multiple numbers are prime ?

import math

def is_prime(num):
    if num < 2:
        return False
    for i in range(2, int(math.sqrt(num)) + 1):
        if num % i == 0:
            return False
    return True

# Test multiple numbers
test_numbers = [2, 3, 4, 17, 25, 29]

for number in test_numbers:
    if is_prime(number):
        print(f"{number} is a prime number")
    else:
        print(f"{number} is not a prime number")
2 is a prime number
3 is a prime number
4 is not a prime number
17 is a prime number
25 is not a prime number
29 is a prime number

Comparison of Methods

Method Time Complexity Best For
Basic Loop (n/2) O(n) Simple understanding
Square Root O(?n) Better performance
Function O(?n) Reusable code

Conclusion

The square root method is most efficient for checking prime numbers as it reduces iterations significantly. Use the function approach when you need to check multiple numbers for reusability and cleaner code.

Updated on: 2026-03-25T05:18:36+05:30

218K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements