Python Program to Find Prime Factors of a Number

If a number p is fully divisible by another number q, then q is said to be a factor of p. Here q will be greater than 1 and less than or equal to p.

So, if a number p is fully divisible by another number q and q is a prime number then q is said to be a prime factor of p.

Prime numbers are those numbers that are only divisible by 1 and themselves. In this article, we will see the code to find the prime factors of a number.

For example:

If we take 5, then prime factors will be:

5 = 5

5 is the only prime factor of 5.

If we take 20, then prime factors will be:

20 = 2 * 2 * 5

If we take 210, then prime factors will be:

210 = 2 * 3 * 5 * 7

Now let’s see the code of this problem. In this code, we will be creating two functions. The first function will help us to know if a number is prime or not. And the second function will help us to print the prime factor of a number.

def isPrime(n):
    """
    Function to return if a number is prime or not
    Input : A Number
    Output : Boolean Value True or False
    """

    # If the Number is less than 2, then returns False
    if n < 2:
        return False
    
    # loop from 2 to n-1, if between this range n is divided by any number 
    # then return False 
    # else return true in the end.
    for i in range(2, n):
        if (n % i == 0):
            return False

    return True

# Function to print the prime factors of a number.
def primeFactor(n):
    """
    Function to print the prime factors of a number.
    Input : Number
    Output : None. It will print the prime factors from the function only.

    """
    if (n < 2):
        print("No Prime Factors")
        return

    i = 2
    # Loop while i is not equal to n
    while (i < n+1):
        # if n is divisible by i and i is a prime number then we have to 
        # print the vlaue of i and update the value of n by dividing it by i.
        # else we just have to increment the value of i by 1.
        if (n % i == 0 and isPrime(i)):
            print(i) # print the value of i
            n = n / i # update the value of n
        else:
            i += 1 # Increase the value of i by 1

# Take the number as input from user in the string format
number = input("Enter the Number : ")

# Convert the string datatype into integer datatype
number = int(number)

# Call the function to print the prime factors of the inputted number
print("Prime Factor : ")
primeFactor(number)

Testcase 1: When the input is 100.

Output:

PS C : \ Users \ ASUS \ Desktop \ Crazy Programmer Work > python -u " c : \ Users \ ASUS \ Desktop \ Crazy Programmer Work \ test.py "
Enter the Number : 100
Prime Factor : 
2
2
5
5

Testcase 2: When the Input is 270270.

Output:

PS C : \ Users \ ASUS \ Desktop \ Crazy Programmer Work > python -u " c : \ Users \ ASUS \ Desktop \ Crazy Programmer Work \ test.py "
Enter the Number : 270270
Prime Factor : 
2
3
3
3
5
7
11
13
Python Program to Find Prime Factors of a Number

We have used two functions to create the whole program.

The first function will tell us if a number is prime or not. It takes an integer and returns a Boolean value (True or false).

The second function will help to print the prime factors of a number. It will take an integer as input and print all the prime factors of that input. It returns None because all the printing is done within the function only.

Leave a Comment

Your email address will not be published. Required fields are marked *