# Sum and Product of digits in a number that divide the number

Given a positive integer N. The task is to find sum and product of digits of the number which evenly divides the number n.

Examples:

```Input: N = 12
Output: Sum = 3, product = 2
1 and 2 divide 12. So, their sum is 3 and product is 2.

Input: N = 1012
Output: Sum = 4, product = 2
1, 1 and 2 divide 1012.
```

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

Approach: The idea is to find the each digit of the number n by modulus 10 and then check whether it divides n or not. Accordingly, add it to the sum and multiply it with the product. Notice that the digit can be 0, so take care of that case.

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the above approach ` `#include ` `using` `namespace` `std; ` ` `  `// Print the sum and product of digits ` `//  that divides the number. ` `void` `countDigit(``int` `n) ` `{ ` `    ``int` `temp = n, sum = 0, product = 1; ` `    ``while` `(temp != 0) { ` ` `  `        ``// Fetching each digit of the number ` `        ``int` `d = temp % 10; ` `        ``temp /= 10; ` ` `  `        ``// Checking if digit is greater than 0 ` `        ``// and can divides n. ` `        ``if` `(d > 0 && n % d == 0) { ` `            ``sum += d; ` `            ``product *= d; ` `        ``} ` `    ``} ` ` `  `    ``cout << ``"Sum = "` `<< sum; ` `    ``cout << ``"\nProduct = "` `<< product; ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``int` `n = 1012; ` ` `  `    ``countDigit(n); ` `    ``return` `0; ` `} `

## Java

 `// Java implementation of the ` `// above approach ` `import` `java.lang.*; ` `import` `java.util.*; ` ` `  `class` `GFG ` `{ ` `// Print the sum and product of  ` `// digits that divides the number. ` `static` `void` `countDigit(``int` `n) ` `{ ` `    ``int` `temp = n, sum = ``0``, product = ``1``; ` `    ``while` `(temp != ``0``) ` `    ``{ ` ` `  `        ``// Fetching each digit of  ` `        ``// the number ` `        ``int` `d = temp % ``10``; ` `        ``temp /= ``10``; ` ` `  `        ``// Checking if digit is greater ` `        ``// than 0 and can divides n. ` `        ``if` `(d > ``0` `&& n % d == ``0``)  ` `        ``{ ` `            ``sum += d; ` `            ``product *= d; ` `        ``} ` `    ``} ` ` `  `    ``System.out.print(``"Sum = "` `+ sum); ` `    ``System.out.print(``"\nProduct = "` `+ product); ` `} ` ` `  `// Driver code ` `public` `static` `void` `main(String args[]) ` `{ ` `    ``int` `n = ``1012``; ` ` `  `    ``countDigit(n); ` `} ` `} ` ` `  `// This code is contributed ` `// by Akanksha Rai(Abby_akku) `

## Python3

 `# Python3 implementation of the above approach ` ` `  `# Print the sum and product of digits ` `# that divides the number. ` `def` `countDigit(n): ` `    ``temp ``=` `n ` `    ``sum` `=` `0` `    ``product ``=` `1` `    ``while``(temp !``=` `0``): ` `         `  `        ``# Fetching each digit of the number ` `        ``d ``=` `temp ``%` `10` `        ``temp ``/``/``=` `10` `         `  `        ``# Checking if digit is greater  ` `        ``# than 0 and can divides n. ` `        ``if``(d > ``0` `and` `n ``%` `d ``=``=` `0``): ` `            ``sum` `+``=` `d ` `            ``product ``*``=` `d ` `             `  `    ``print``(``"Sum ="``, ``sum``) ` `    ``print``(``"Product ="``, product) ` ` `  `# Driver code ` `if` `__name__``=``=``'__main__'``: ` `     `  `    ``n ``=` `1012` `    ``countDigit(n) ` ` `  `# This code is contributed  ` `# by Kirti_Mangal ` `    `

## C#

 `// C# implementation of the  ` `// above approach ` `using` `System; ` ` `  `class` `GFG ` `{ ` `// Print the sum and product of  ` `// digits that divides the number. ` `static` `void` `countDigit(``int` `n) ` `{ ` `    ``int` `temp = n, sum = 0, product = 1; ` `    ``while` `(temp != 0) ` `    ``{ ` ` `  `        ``// Fetching each digit of  ` `        ``// the number ` `        ``int` `d = temp % 10; ` `        ``temp /= 10; ` ` `  `        ``// Checking if digit is greater ` `        ``// than 0 and can divides n. ` `        ``if` `(d > 0 && n % d == 0)  ` `        ``{ ` `            ``sum += d; ` `            ``product *= d; ` `        ``} ` `    ``} ` ` `  `    ``Console.Write(``"Sum = "` `+ sum); ` `    ``Console.Write(``"\nProduct = "` `+ product); ` `} ` ` `  `// Driver code ` `public` `static` `void` `Main() ` `{ ` `    ``int` `n = 1012; ` ` `  `    ``countDigit(n); ` `} ` `} ` ` `  `// This code is contributed ` `// by Akanksha Rai(Abby_akku) `

## PHP

 ` 0 && ``\$n` `% ``\$d` `== 0) { ` `            ``\$sum` `+= ``\$d``; ` `            ``\$product` `*= ``\$d``; ` `        ``} ` `    ``} ` ` `  `    ``echo` `"Sum = "``.``\$sum``; ` `    ``echo` `"\nProduct = "``.``\$product``; ` `} ` ` `  `// Driver code ` ` `  `    ``\$n` `= 1012; ` ` `  `    ``countDigit(``\$n``); ` `     `  `// This code is contributed by mits ` `?> `

Output:

```Sum = 4
Product = 2
```

GeeksforGeeks has prepared a complete interview preparation course with premium videos, theory, practice problems, TA support and many more features. Please refer Placement 100 for details

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

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.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

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.