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:
1, 2, 3, 4, 6, 9, 12, 18 and 36.
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.
1, 2, 3, 4, |, 9, 12, 18, 36
It is easily seen that every factor of 36 on one side of the
divide has a complementary factor on the other side.
Figure: Complementary factors to expedient quick check for prime numbers in Python.
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.
# returns true if $prime_suspect is a prime false otherwise. defverifyPrime(self): # prime_suspect is a prime number until proven otherwise # Loop through searching for factors. for self.count inrange(2, self.prime_suspect): if self.prime_suspect % self.count == 0:
self.a_factor = self.count returnFalse
# If no factor is found: returnTrue
Python Code for Checking Prime - Main Class.
#!/usr/bin/python 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
# Import the necessary math functions from math import ceil, sqrt
# returns true if prime_suspect is a prime false otherwise. defverifyPrimeFast(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 inrange(2, self.test_range): if self.prime_suspect % self.count == 0:
self.a_factor = self.count returnFalse
# If no factor is found: returnTrue
Python Code for Fast Check for Primeness - Main Class.
#!/usr/bin/python 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)