usingMaths.com
From Theory to Practice - Math You Can Use.







<< PreviousNext >>

Python Code to List Prime Pactors of a Number - Math Project for Primary Students



What are Prime Factors? | Maths Explanation for Python Kids

Finding prime factors is all about selecting those factors of a number that are prime.
The prime factors of 36 as an example, are:

2 X 2 X 3 X 3.

In this guide, we'll thoroughly explain prime factorisation and show how to code a Python algorithm to find prime-factors in a detailed and interactive manner.
This Math exercise and Python algorithm will help young students understand prime factorization by listing all prime factors of a number.


Step-by-step Guide to Prime Factorisation of Numbers in Python

We'll go about the Python algorithm to find prime factors in a simple way:

Step 1:

Starting with 2, find the first factor of the number of interest - this factor will definitely be a prime.
Store this factor away.

Step 2:

Divide number in question by found factor.

Step 3:

Using result from Step 2 as the new number in question (number whose prime factors we are trying to find), repeat Step 1.

Step 4:

Continue recursively until we arrive at 1.

Step 5:

We'll use the square-root of number range.


Create a new Python module file; File, New File.
Call it listPrimeFactors.py.

Type out the adjoining Python code for finding prime factors.


All those steps in a few lines of Python code;
Now Python functions come in handy, don't they?

Note: You can comment out the Python code for the Arithmetic class from the previous lesson if you have been following.


So! Python Fun Practice Exercise - List Prime Factors

As a fun practice exercise, feel free to try out your own different numbers, and see how the Python code lists the prime factors of those numbers.









Python Code for List Prime Factors - Module File.

from math import ceil, sqrt

# A class
class PrimeFactors:
    def __init__(self, val):
        self.find_my_factors = val
        self.found_prime_factors = []

    # takes one argument, the candidate for factorisation
    # returns an array reference of the prime factors
    def onlyPrimeFactors(self):
        self.temp_limit = ceil(sqrt(self.find_my_factors))

        # STEP 1:
        self.i = 2
        while self.i <= self.temp_limit:
            # STEP 4:
            # avoid an infinite loop with the i != 1 check.
            if self.i != 1 and self.find_my_factors % self.i == 0:
                self.found_prime_factors.append(self.i)
                # STEP 2:
                self.find_my_factors = int(self.find_my_factors / self.i)
                # STEP 3:
                return self.onlyPrimeFactors()

            self.i += 1

        self.found_prime_factors.append(self.find_my_factors)
        return self.found_prime_factors

 

Python Code for List Prime Factors - Main Class.

#!/usr/bin/python
from ListPrimeFactors import PrimeFactors

# Use the list prime factors module/class
test_guy = 48
prime_factors = PrimeFactors(test_guy)
print("Prime factorising", test_guy, "gives:\n"str(prime_factors.onlyPrimeFactors()))


print("\n\n")




<< PreviousNext >>