Euclid’s division algorithm is used to calculate the Highest Common Factor (HCF) of two positive numbers. It is based on Euclid’s division lemma and can be implemented in just a few lines of high level code. You can read more about this algorithm on this page.
Euclid’s Division Algorithm: Pseudocode
INPUT a #The largest of two numbers INPUT b #The smallest of two numbers WHILE b > 0 temp = b b = a MOD b a = temp END WHILE OUTPUT a
Trace Table
Do get a better understanding of how this algorithm works we will complete the following trace tables assuming that the two input values a and b will be a = 32 and b = 24. The output (Highest Common Factor) of this program should be 8.
Complete the trace table below to find out if this algorithm will produce the required output.
| Line Number | a | b | temp | b > 0? | OUTPUT | |
|---|---|---|---|---|---|---|
| 1 | 32 | |||||
| 2 | 24 | |||||
| 3 | True | |||||
| … |
Python Code
You can now create a function called calculateHCF() that takes two parameters, a and b and returns the HCF of these two numbers using Euclid’s division algorithm.
To improve your code, you should make it work even when number b is greater than number a.
Test Plan
Test your function using the following test plan:
| Test # | Input Values | Expected Output | Actual Output |
| #1 | a: 32 b: 24 |
8 | |
| #2 | a: 45 b: 30 |
15 | |
| #3 | a: 78 b: 24 |
6 | |
| #4 | a: 60 b: 20 |
20 | |
| #5 | a: 100 b: 21 |
1 | |
| #6 | a: 96 b: 72 |
24 | |
| #7 | a: 72 b: 96 |
24 |






