MCD de dígitos de un número dado

Dado un número n, encuentre el MCD de sus dígitos.

Ejemplos: 

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

Atravesamos los dígitos del número uno por uno usando el siguiente bucle  

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

Mientras recorremos los dígitos, hacemos un seguimiento del GCD actual y seguimos actualizando el GCD al encontrar el GCD del dígito actual con el GCD actual. 

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>

Producción : 

2

Complejidad de tiempo: O (logn)

Espacio Auxiliar: O(1)

Este artículo es una contribución de Dibyendu Roy Chaudhuri . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *