Python Program for Basic Euclidean Algorithms
Last Updated :
29 Oct, 2025
Given two numbers a and b, the task is to find their greatest common divisor (GCD), which is the largest number that divides both a and b completely. For example:
Input: a = 10, b = 15 -> Output: 5
Input: a = 31, b = 2 -> Output: 1
Let’s explore different methods to find the GCD in Python.
Using math.gcd()
The math module provides a built-in gcd() function that internally implements the optimized Euclidean algorithm. This is the most efficient and pythonic way to find the GCD.
Python
import math
a, b = 10, 15
print("GCD is", math.gcd(a, b))
Explanation: math.gcd(a, b) directly returns the greatest common divisor of the two numbers.
Using Iterative Euclidean Algorithm
This approach repeatedly replaces the larger number with the remainder until one becomes zero. The non-zero number left is the GCD.
Python
a, b = 10, 15
while b:
a, b = b, a % b
print("GCD is", a)
Explanation:
- The loop continues until b becomes zero.
- In each iteration, a is replaced with b, and b with a % b.
- Once b is zero, a holds the GCD.
Using Recursive Euclidean Algorithm
This is the traditional recursive form of the algorithm. It calls itself repeatedly by swapping a and b % a until a becomes zero.
Python
def gcd(a, b):
if a == 0:
return b
return gcd(b % a, a)
a, b = 10, 15
print("GCD is", gcd(a, b))
Explanation:
- The function keeps calling itself with the remainder until the base case (a == 0) is reached.
- The value of b at that point is the greatest common divisor.
Using Subtraction-based Euclidean Algorithm
This method repeatedly subtracts the smaller number from the larger until both become equal.
Python
a, b = 10, 15
while a != b:
if a > b:
a -= b
else:
b -= a
print("GCD is", a)
Explanation:
- The larger number is reduced by the smaller in each step.
- When both numbers become equal, that value is the GCD.
Please refer complete article on Basic and Extended Euclidean algorithms for more details!
Explore
Python Fundamentals
Python Data Structures
Advanced Python
Data Science with Python
Web Development with Python
Python Practice