Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
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.
