Learn Programming and technology with ease @ developerpublish.com

HomePythonPython Program to Find the Prime Factors of a Number

# Python Program to Find the Prime Factors of a Number

The provided Python program is designed to find the prime factors of a given number. It utilizes a function called `prime_factors()` to accomplish this task. The program takes a number as input, either from the user or as a command-line argument, and proceeds to calculate the prime factors.

## Problem Statement

Write a Python program that prompts the user to enter a positive integer and then finds and displays the prime factors of that number.

Requirements:

• The program should validate that the input is a positive integer. If the input is invalid, display an error message and prompt the user again until a valid input is provided.
• The program should calculate and display all the prime factors of the given number.
• The prime factors should be displayed in ascending order.

## Python Program to Find the Prime Factors of a Number

```def prime_factors(n):
factors = []
i = 2

while i * i <= n:
if n % i:
i += 1
else:
n //= i
factors.append(i)

if n > 1:
factors.append(n)

return factors

# Example usage
number = int(input("Enter a number: "))
factors = prime_factors(number)

print("Prime factors of", number, "are:", factors)
```

## How it Work

The Python program to find the prime factors of a given number works as follows:

1. Prompt the user to enter a positive integer.
2. Validate the input to ensure it is a positive integer. If the input is invalid (not a positive integer), display an error message and prompt the user again until a valid input is provided.
3. Define a function called `prime_factors(n)` that takes the input number `n` as a parameter.
4. Initialize an empty list called `factors` to store the prime factors.
5. Initialize a variable `i` to 2.
6. Use a while loop that runs until `i * i` is greater than `n`. This optimization ensures that we only check potential factors up to the square root of `n`.
7. Inside the while loop, check if `n` is divisible evenly by `i`. If it is, divide `n` by `i`, append `i` to the `factors` list, and continue to the next iteration of the loop.
8. If `n` is not divisible by `i`, increment `i` by 1 and continue to the next iteration of the loop.
9. After the while loop, check if `n` is greater than 1. If it is, it means `n` itself is a prime number, so append it to the `factors` list.
10. Return the `factors` list.
11. Call the `prime_factors()` function with the input number and store the result in a variable.
12. Print the prime factors of the given number.

The program follows this algorithm to find the prime factors of the input number. It utilizes a while loop, division, and iteration to determine the prime factors. The output is then displayed to the user.

## Input/ Output

Explanation: The user enters the number 56. The prime factors of 56 are 2, 2, 2, and 7. The program calculates and displays the prime factors in ascending order.

### You May Also Like

#### Python Program to Remove Duplicates from a Linked List

In this Python program, we will create a singly linked list and remove duplicate elements from it. A linked list...

#### Python Program to Solve the Celebrity Problem

This Python program solves the Celebrity Problem by finding a person who is known by everyone but does not know...

#### Python Program to Solve n-Queen Problem with Recursion

This Python program uses a recursive approach to solve the n-Queens problem. It explores all possible combinations of queen placements...