The Intrique of Prime Numbers | Detailed Explanation for Python Kids
                        Prime numbers are tricky to spot.
                        A number that looks like a prime may in fact be a multiple 
                        of a smaller prime number.
                    
                        In this math programming tutorial for kids, we explore how Python can be used to verify prime numbers efficiently.
                        So let's see how to know for sure that a number is a prime.
                        Of-course there is only one way:
                    
Understanding Prime Number Logic in Python
A prime number is one that can only be divided by itself and one (1).
                        Let's try to draft a Python algorithm that checks prime numbers, with the number 97 in consideration.
                        To know for sure whether it is a prime number, we will 
                        recursively (repetitively) divide it by every number between 
                        2 and 96 (97 minus 1).
                        If none of these divisors gives a remainder of zero, then 97
                        is certainly a prime number.
                    
                        Create a new Python module file; File, New File.
                        Call it CheckPrime.py
                        Type out the adjoining Python code for checking for primeness.
                    
Base Theory of Quick-Check for Primeness in Python
                        Since the world is always in a hurry, we can make use of a 
                        little extra speed.
                        This Python code example shows how to check if a number is prime using a fast algorithm based on complementary factors.
                    
Consider the number 36; Its factors are:
Every factor of 36, when arranged in ascending or descending order, can be divided into 2 equal parts at the position of its square-root.
It is easily seen that every factor of 36 on one side of the divide has a complementary factor on the other side.
Hence, we can search for only a particular group of factors, (preferably the more compact group, i.e, between 1 and √36) to see if 36 has any factors.
A fast Check for Primeness in Python
                        So for our quick prime number check Python algorithm, we will use the range of 
                        2 to √number.
                        Type out the adjoining Python code for fast prime number check.
                    
                        Note: You can simply tweak the existing function from the previous exercise.
                        You can comment out the Python code for the main class
                        from the previous lesson if you have been following.
                    
So! Python Fun Practice Exercise - Check Prime Number
As a fun practice exercise, feel free to try out your own numbers, and see how the Python code checks the numbers to ascertain which ones are prime numbers.
Python Code for Checking Prime - Module File.
class TestPrimeness:
def __init__(self, suspect):
self.prime_suspect = suspect
# returns true if $prime_suspect is a prime false otherwise.
def verifyPrime(self):
# prime_suspect is a prime number until proven otherwise
# Loop through searching for factors.
for self.count in range(2, self.prime_suspect):
if self.prime_suspect % self.count == 0:
self.a_factor = self.count
return False
# If no factor is found:
return True
Python Code for Checking Prime - Main Class.
from CheckPrime import TestPrimeness
# Use the check prime module/class
test_guy = 97
prime_check = TestPrimeness(test_guy)
result = "Prime State:\n"
if prime_check.verifyPrime():
result = "test_guy is a prime number."
else:
result += "test_guy is not a prime number.\n"
result += "At least one factor of test_guy is " + str(prime_check.a_factor)
print(result)
print("\n\n")
Python Code for Fast Check for Primeness
from math import ceil, sqrt
# A class
class TestPrimenessFast:
# Constructor
def __init__(self, suspect):
self.prime_suspect = suspect
# returns true if prime_suspect is a prime false otherwise.
def verifyPrimeFast(self):
# prime_suspect is a prime number until proven otherwise
# Loop through searching for factors.
self.test_range = ceil(sqrt(self.prime_suspect))
for self.count in range(2, self.test_range):
if self.prime_suspect % self.count == 0:
self.a_factor = self.count
return False
# If no factor is found:
return True
Python Code for Fast Check for Primeness - Main Class.
from CheckPrimeFast import TestPrimenessFast
# Use the check prime module/class
test_guy = 49
prime_check = TestPrimenessFast(test_guy)
result = "Prime State:\n"
if prime_check.verifyPrimeFast():
result = "test_guy is a prime number."
else:
result += "test_guy is not a prime number.\n"
result += "At least one factor of test_guy is " + str(prime_check.a_factor)
print(result)
print("\n\n")