Python Program to Check Whether a Number is Prime

Prime numbers are one of the most important concepts in mathematics and computer science. A prime number is a natural number greater than 1 that has no divisors other than 1 and itself. In this tutorial, we will learn how to check whether a number is prime in Python using different methods, from basic to optimized approaches. This guide is designed for beginners as well as intermediate learners who want to improve their problem-solving skills.

What is a Prime Number?

A prime number is a number that is divisible only by 1 and itself. Examples include 2, 3, 5, 7, 11, and so on. Numbers like 4, 6, 8, and 9 are not prime because they have additional divisors.

Why Learn Prime Number Program?

Prime number checking is a fundamental problem in programming. It helps you understand loops, condition checking, optimization techniques, and mathematical reasoning. Prime numbers are widely used in cryptography, security systems, and algorithm design.

Basic Logic

To check if a number is prime, we try dividing it by all numbers from 2 to n-1. If any number divides it evenly, then it is not a prime number. Otherwise, it is prime.

Step-by-Step Algorithm

  • Start the program
  • Input a number from the user
  • Check if the number is less than or equal to 1
  • If yes, it is not prime
  • Otherwise, loop from 2 to n-1
  • Check divisibility
  • If divisible, mark as not prime
  • If no divisors found, it is prime
  • Display result
  • End the program

Python Program (Basic Method)

Python
# Prime number check (basic method)

num = int(input("Enter a number: "))

if num <= 1:
    print("Not a Prime Number")
else:
    for i in range(2, num):
        if num % i == 0:
            print("Not a Prime Number")
            break
    else:
        print("Prime Number")
Sample Output:

Enter a number: 7
Prime Number

Code Explanation

In this program, we first check if the number is less than or equal to 1. If so, it is not prime. Otherwise, we loop through numbers from 2 to n-1 and check if the number is divisible. If any divisor is found, we break the loop and declare it as not prime. If no divisor is found, the number is prime.

Optimized Method (Square Root Approach)

Python
# Optimized prime check
import math

num = int(input("Enter a number: "))

if num <= 1:
    print("Not Prime")
else:
    for i in range(2, int(math.sqrt(num)) + 1):
        if num % i == 0:
            print("Not Prime")
            break
    else:
        print("Prime Number")

Why Optimization Matters

Instead of checking all numbers up to n, we only check up to the square root of n. This significantly reduces the number of iterations and improves performance, especially for large numbers.

Using Functions

Python
def is_prime(n):
    if n <= 1:
        return False
    for i in range(2, int(n**0.5) + 1):
        if n % i == 0:
            return False
    return True

number = int(input("Enter a number: "))

if is_prime(number):
    print("Prime Number")
else:
    print("Not Prime")

Real-World Applications

  • Cryptography and encryption systems
  • Secure communication protocols
  • Mathematical research
  • Algorithm design and optimization
  • Blockchain and security applications

Common Mistakes to Avoid

  • Not handling numbers less than 2
  • Using inefficient loops
  • Incorrect loop ranges
  • Forgetting break statement
  • Not optimizing for large numbers

Advanced Enhancements

  • Generate prime numbers in a range
  • Implement Sieve of Eratosthenes
  • Create a GUI prime checker
  • Develop a web-based prime tool
  • Use primes in encryption systems

Practice Exercises

  • Write a program to print all prime numbers between 1 and 100
  • Count the number of prime numbers in a range
  • Check twin primes
  • Implement prime factorization
  • Build a prime number generator tool

Conclusion

The prime number program is an essential exercise that improves logical thinking and problem-solving skills. By learning both basic and optimized approaches, you can handle small as well as large inputs efficiently. Practice different variations to master the concept and apply it in real-world applications.

Note: Note: For large-scale applications, always use optimized methods like square root or sieve techniques.