LCM of digits of a given number

Given a number n, find LCM of its digits.

Examples:

```Input : 397
Output : 63
LCM of 3, 9 and 7 is 63.

Input : 244
Output : 4
LCM of 2, 4 and 4 is 4.
```

Recommended: Please try your approach on {IDE} first, before moving on to the solution.

We traverse the digits of number one by one below loop

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

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

C++

 `// CPP program to find LCM of digits of a number ` `#include ` `#include ` `using` `namespace` `std; ` ` `  `int` `digitLCM(``int` `n) ` `{ ` `    ``int` `lcm = 1; ` `    ``while` `(n > 0) ` `    ``{ ` `        ``lcm = boost::math::lcm(n%10, lcm); ` ` `  `        ``// If at any point LCM become 0. ` `        ``// return it ` `        ``if` `(lcm == 0) ` `            ``return` `0; ` ` `  `        ``n = n/10; ` `    ``} ` `    ``return` `lcm; ` `} ` ` `  `// driver code ` `int` `main() ` `{ ` `    ``long` `n = 397; ` `    ``cout << digitLCM(n); ` `    ``return` `0; ` `} `

Java

 `// Java program to find LCM of digits of a number ` ` `  `class` `GFG ` `{ ` `// define lcm function ` `static` `int` `lcm_fun(``int` `a, ``int` `b) ` `{ ` `    ``if` `(b == ``0``) ` `        ``return` `a; ` `    ``return` `lcm_fun(b, a % b); ` `} ` ` `  `static` `int` `digitLCM(``int` `n) ` `{ ` `    ``int` `lcm = ``1``; ` `    ``while` `(n > ``0``) ` `    ``{ ` `        ``lcm = (n % ``10` `* lcm) / lcm_fun(n % ``10``, lcm); ` ` `  `        ``// If at any point LCM become 0. ` `        ``// return it ` `        ``if` `(lcm == ``0``) ` `            ``return` `0``; ` ` `  `        ``n = n/``10``; ` `    ``} ` `    ``return` `lcm; ` `} ` ` `  `// driver code ` `public` `static` `void` `main(String[] args) ` `{ ` `    ``int` `n = ``397``; ` `    ``System.out.println(digitLCM(n)); ` `} ` `} ` `// This code is contributed by mits `

Python3

 `# Python3 program to find ` `# LCM of digits of a number ` ` `  `# define lcm function ` `def` `lcm_fun(a, b): ` ` `  `    ``if` `(b ``=``=` `0``): ` `        ``return` `a; ` `    ``return` `lcm_fun(b, a ``%` `b); ` ` `  `def` `digitLCM(n): ` ` `  `    ``lcm ``=` `1``; ` `    ``while` `(n > ``0``): ` `        ``lcm ``=` `int``((n ``%` `10` `*` `lcm) ``/`  `              ``lcm_fun(n ``%` `10``, lcm)); ` ` `  `        ``# If at any point LCM  ` `        ``# become 0. return it ` `        ``if` `(lcm ``=``=` `0``): ` `            ``return` `0``; ` ` `  `        ``n ``=` `int``(n ``/` `10``); ` `     `  `    ``return` `lcm; ` ` `  `# Driver code ` `n ``=` `397``; ` `print``(digitLCM(n)); ` ` `  `# This code is contributed by mits `

C#

 `// C# program to find LCM of digits ` `// of a number ` `class` `GFG ` `{ ` `     `  `// define lcm function ` `static` `int` `lcm_fun(``int` `a, ``int` `b) ` `{ ` `    ``if` `(b == 0) ` `        ``return` `a; ` `    ``return` `lcm_fun(b, a % b); ` `} ` ` `  `static` `int` `digitLCM(``int` `n) ` `{ ` `    ``int` `lcm = 1; ` `    ``while` `(n > 0) ` `    ``{ ` `        ``lcm = (n % 10 * lcm) / lcm_fun(n % 10, lcm); ` ` `  `        ``// If at any point LCM become 0. ` `        ``// return it ` `        ``if` `(lcm == 0) ` `            ``return` `0; ` ` `  `        ``n = n/10; ` `    ``} ` `    ``return` `lcm; ` `} ` ` `  `// Driver Code ` `public` `static` `void` `Main() ` `{ ` `    ``int` `n = 397; ` `    ``System.Console.WriteLine(digitLCM(n)); ` `} ` `} ` ` `  `// This code is contributed by mits `

PHP

 ` 0) ` `    ``{ ` `        ``\$lcm` `= (int)((``\$n` `% 10 * ``\$lcm``) /  ` `              ``lcm_fun(``\$n` `% 10, ``\$lcm``)); ` ` `  `        ``// If at any point LCM  ` `        ``// become 0. return it ` `        ``if` `(``\$lcm` `== 0) ` `            ``return` `0; ` ` `  `        ``\$n` `= (int)(``\$n` `/ 10); ` `    ``} ` `    ``return` `\$lcm``; ` `} ` ` `  `// Driver code ` `\$n` `= 397; ` `echo` `digitLCM(``\$n``); ` ` `  `// This code is contributed by mits ` `?> `

Output:

```63
```

This article is contributed by nikunj_agarwal. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

My Personal Notes arrow_drop_up

Improved By : Mithun Kumar

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.