Open In App
Related Articles

GCD of digits of a given number

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report

Given a number n, find GCD of its digits.

Examples : 

Input  : 345
Output : 1
GCD of 3, 4 and 5 is 1.

Input  : 2448
Output : 2
GCD of 2, 4, 4 and 8 is 2

We traverse the digits of number one by one using below loop  

digit = n mod 10;
n  = n / 10; 


While traversing digits, we keep track of current GCD and keep updating GCD by finding GCD of current digit with current GCD. 

C++

// CPP program to find GCD of digits of a number
#include<iostream>
#include<algorithm>
using namespace std;
  
int digitGCD(int n)
{
    int gcd = 0;
    while (n > 0)
    {        
        gcd = __gcd(n%10, gcd);
  
        // If at point GCD becomes 1,
        // return it
        if (gcd == 1)
           return 1;
  
        n = n/10;
    }
    return gcd;
}
  
// driver code
int main()
{
    long n = 2448;
    cout << digitGCD(n);
    return 0;
}

                    

Java

// Java program to find GCD of digits of a number
  
class GFG
{
    // Recursive function to return gcd of a and b
    static int __gcd(int a, int b)
    
        return b == 0 ? a : __gcd(b, a % b); 
          
    }
    static int digitGCD(int n)
    {
        int gcd = 0;
        while (n > 0)
        {     
            gcd = __gcd(n % 10, gcd);
      
            // If at point GCD becomes 1,
            // return it
            if (gcd == 1)
            return 1;
      
            n = n / 10;
        }
        return gcd;
    }
      
    // Driver code
    public static void main (String[] args) 
    {
        int n = 2448;
        System.out.print(digitGCD(n));
    }
}
  
// This code is contributed by Anant Agarwal.

                    

Python3

# Python program to find 
# GCD of digits of a number
  
# Recursive function to return gcd of a and b
def __gcd(a,b):
    return a if(b==0) else __gcd(b, a % b)
      
def digitGCD(n):
  
    gcd = 0
    while (n > 0):
      
        gcd = __gcd(n % 10, gcd)
   
        # If at point GCD becomes 1,
        # return it
        if (gcd == 1):
           return 1
   
        n = n // 10
      
    return gcd
  
#Driver code
n = 2448
print(digitGCD(n))
  
# This code is contributed
# by Anant Agarwal.

                    

C#

// C# program to find GCD of
// digits of a number
using System;
  
class GFG {
      
    // Recursive function to return 
    // gcd of a and b
    static int __gcd(int a, int b)
    
        return b == 0 ? a : __gcd(b, a % b); 
          
    }
      
    static int digitGCD(int n)
    {
        int gcd = 0;
        while (n > 0)
        {     
            gcd = __gcd(n % 10, gcd);
      
            // If at point GCD becomes 1,
            // return it
            if (gcd == 1)
            return 1;
      
            n = n / 10;
        }
        return gcd;
    }
      
    // Driver code
    public static void Main () 
    {
        int n = 2448;
        Console.Write(digitGCD(n));
    }
}
  
// This code is contributed by Nitin Mittal.

                    

PHP

<?php
// PHP program to find GCD 
// of digits of a number
  
// Recursive function to 
// return gcd of a and b
function __gcd($a,$b)
    return $b == 0 ? $a
      __gcd($b, $a % $b); 
          
}
      
function digitGCD($n)
{
    $gcd = 0;
    while ($n > 0)
    {     
        $gcd = __gcd($n % 10, $gcd);
  
        // If at point GCD 
        // becomes 1, return it
        if ($gcd == 1)
        return 1;
  
        $n = $n / 10;
    }
    return $gcd;
}
  
// Driver code
$n = 2448;
echo digitGCD($n);
  
// This code is contributed by Sam007
?>

                    

Javascript

<script>
// javascript program to find GCD of digits of a number    
// Recursive function to return gcd of a and b
    function __gcd(a, b)
    {
        return b == 0 ? a : __gcd(b, a % b);
  
    }
  
    function digitGCD(n)
    {
        var gcd = 0;
        while (n > 0)
        {
            gcd = __gcd(n % 10, gcd);
  
            // If at point GCD becomes 1,
            // return it
            if (gcd == 1)
                return 1;
  
            n = parseInt(n / 10);
        }
        return gcd;
    }
  
    // Driver code
    var n = 2448;
    document.write(digitGCD(n));
  
// This code is contributed by aashish1995
</script>

                    

Output : 

2

Time complexity: O(logn)

Auxiliary Space: O(1)



 



Last Updated : 17 Feb, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads