- Swift Tutorial
- Swift - Home
- Swift - Overview
- Swift - Environment
- Swift - Basic Syntax
- Swift - Data Types
- Swift - Variables
- Swift - Optionals
- Swift - Tuples
- Swift - Constants
- Swift - Literals
- Swift - Operators
- Swift - Decision Making
- Swift - Loops
- Swift - Strings
- Swift - Characters
- Swift - Arrays
- Swift - Sets
- Swift - Dictionaries
- Swift - Functions
- Swift - Closures
- Swift - Enumerations
- Swift - Structures
- Swift - Classes
- Swift - Properties
- Swift - Methods
- Swift - Subscripts
- Swift - Inheritance
- Swift - Initialization
- Swift - Deinitialization
- Swift - ARC Overview
- Swift - Optional Chaining
- Swift - Type Casting
- Swift - Extensions
- Swift - Protocols
- Swift - Generics
- Swift - Access Control

- Swift Useful Resources
- Swift - Compile Online
- Swift - Quick Guide
- Swift - Useful Resources
- Swift - Discussion

# Swift program to find the GCD of two given numbers using recursion

This tutorial will discuss how to write swift program to find the GCD of two given numbers using recursion.

GCD(Greatest Common Factor) of two numbers is known as the greater positive number which is the common factor of both the given two positive numbers. GCD is also known as HCF(Highest Common Factor). GCD of two numbers cannot be negative or zero and the minimum GCD value of two numbers is always 1. For example, suppose we have two numbers: 16 and 24

So the factor of 16 = 2x2x2x2

The factor of 24 = 2x2x2x3

So, GCD(16, 24) = 2x2x2x2 = 8

Below is a demonstration of the same −

**Input**

Suppose our given input is −

Num1 = 16 Num2 = 24

**Output**

The desired output would be −

GCD = 8

## Euklid’s Algorithm

To calculate GCD of two number, we first calculate their factors and then then take the greatest common number they have to calculate GCD. This method work perfectly fine for small number but what if the numbers are large, then this method gets difficult. So, to find the GCD of small or large numbers we use Euklid’s Algorithm. In this algorithm, we divide two numbers till the remainder become 0.

GCD(x, y) = GCD(y, x%y)

Here, x%y is used to find the remainder.

To calculate the GCD of two numbers we can use recursive approach. Recursive approach is an approach in which a function call itself to complete the specified task.

### Algorithm

Following is the algorithm −

**Step 1** − Create a recursive function.

**Step 2** − Declare a variable named “output” to store remainder.

let output: Int = n1 % n2

**Step 3** − Check if output != 0. If condition is true then call the findRecursiveGCD() function recursively. Otherwise return n2 because the reminder is zero which means we find the GCD of two number.

**Step 4** − Calling the function and store the result into a variable.

**Step 5** − Print the output.

### Example 1

The following program shows how to calculate the GCD of two given numbers using recursion.

import Swift import Foundation // Recursive function to find gcd of two numbers func findRecursiveGCD(n1: Int, n2: Int) -> Int { let output: Int = n1 % n2 // Base condition if output != 0{ // Calling function itself return findRecursiveGCD(n1: n2, n2: output) } else{ return n2 } } // Calling Function var result = findRecursiveGCD(n1:27, n2:21) print("GCD of 27 and 21 is ", result)

### Output

GCD of 27 and 21 is 3

Here in the above code, we create a recursive function named findRecursiveGCD to calculate the GCD of two numbers. It uses Euklid’s algorithm. Here in this function, we find the remainder of two numbers by calling the function recursively. So the working of the findRecursiveGCD() −

findRecursiveGCD(27, 21) −

**Output = 27 % 21 = 6**

if 6 != 0{ return findRecursiveGCD(n1: 21, n2: 6) } else{ return n2 }

**Output = 21 % 6 = 3**

if 3 != 0{ return findRecursiveGCD(n1: 6, n2: 3) } else{ return n2 }

**Output = 6 % 3 = 0**

if 0 != 0{ return findRecursiveGCD(n1: 6, n2: 3) } else{ return n2 = 3 }

So the GCD of 27 and 21 is 3.

- Related Articles
- Haskell Program to find the GCD of two given numbers using recursion
- How to find the GCD of Two given numbers using Recursion in Golang?
- Swift Program to Find GCD of two Numbers
- Haskell Program to find the LCM of two given numbers using recursion
- Swift program to find the reverse of a given number using recursion
- Java program to calculate the GCD of a given number using recursion
- Python Program to Find the Product of two Numbers Using Recursion
- Java Program to Find the Product of Two Numbers Using Recursion
- Haskell Program to Find the Product of Two Numbers Using Recursion
- Golang Program to Find the Product of Two Numbers Using Recursion
- C++ Program to Find the Product of Two Numbers Using Recursion
- Haskell program to find the gcd of two numbers
- Java Program to Find GCD of two Numbers
- Kotlin Program to Find GCD of two Numbers
- How to find the LCM of two given numbers using Recursion in Golang?