给定数字n,找到其数字的GCD。
例子 :
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
我们使用下面的循环遍历数字一
digit = n mod 10;
n = n / 10;
在遍历数字时,我们会跟踪当前GCD,并通过使用当前GCD查找当前数字的GCD来不断更新GCD。
C++
// CPP program to find GCD of digits of a number
#include
#include
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
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
输出 :
2