# Python program to find the gcd of two numbers

• Difficulty Level : Easy
• Last Updated : 26 Nov, 2020

Given two numbers. The task is to find the GCD of the two numbers.

Using STL :

In Python, the math module contains a number of mathematical operations, which can be performed with ease using the module. math.gcd() function compute the greatest common divisor of 2 numbers mentioned in its arguments.

Syntax: math.gcd(x, y)

Parameter:

x : Non-negative integer whose gcd has to be computed.

y : Non-negative integer whose gcd has to be computed.

Returns: An absolute/positive integer value after calculating the GCD of given parameters x and y.

Exceptions: When Both x and y are 0, function returns 0, If any number is a character, Type error is raised.

## Python3

 `# Python code to demonstrate the working of gcd() ` `# importing "math" for mathematical operations ` `import` `math ` ` `  `# prints 12 ` `print``(``"The gcd of 60 and 48 is : "``, end``=``"") ` `print``(math.gcd(``60``, ``48``)) `

Output

```The gcd of 60 and 48 is : 12
```

Using Recursion :

## Python3

 `# Python code to demonstrate naive ` `# method to compute gcd ( recursion ) ` ` `  ` `  `def` `hcf(a, b): ` `    ``if``(b ``=``=` `0``): ` `        ``return` `a ` `    ``else``: ` `        ``return` `hcf(b, a ``%` `b) ` ` `  `a ``=` `60` `b ``=` `48` ` `  `# prints 12 ` `print``(``"The gcd of 60 and 48 is : "``, end``=``"") ` `print``(hcf(``60``, ``48``)) `

Output

```The gcd of 60 and 48 is : 12
```

Using Euclidean Algorithm :

The Euclid’s algorithm (or Euclidean Algorithm) is a method for efficiently finding the greatest common divisor (GCD) of two numbers. The GCD of two integers X and Y is the largest number that divides both of X and Y (without leaving a remainder).

Pseudo Code of the Algorithm-

1. Let  a, b  be the two numbers
2. a mod b = R
3. Let  a = b  and  b = R
4. Repeat Steps 2 and 3 until  a mod b  is greater than 0
5. GCD = b
6.  Finish

## Python3

 `# Recursive function to return gcd of a and b ` `def` `gcd(a, b): ` ` `  `    ``# Everything divides 0 ` `    ``if` `(a ``=``=` `0``): ` `        ``return` `b ` `    ``if` `(b ``=``=` `0``): ` `        ``return` `a ` ` `  `    ``# base case ` `    ``if` `(a ``=``=` `b): ` `        ``return` `a ` ` `  `    ``# a is greater ` `    ``if` `(a > b): ` `        ``return` `gcd(a``-``b, b) ` `    ``return` `gcd(a, b``-``a) ` ` `  `# Driver program to test above function ` `a ``=` `98` `b ``=` `56` `if``(gcd(a, b)): ` `    ``print``(``'GCD of'``, a, ``'and'``, b, ``'is'``, gcd(a, b)) ` `else``: ` `    ``print``(``'not found'``) `

Output

```GCD of 98 and 56 is 14
```

My Personal Notes arrow_drop_up
Recommended Articles
Page :