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

22 Apr, 2021
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.
 
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++
Java
Python3
C#
PHP
Javascript
// C++ implementation of the above approach#include <bits/stdc++.h>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 codeint main(){    int n = 1012;     countDigit(n);    return 0;}
// Java implementation of the// above approachimport 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 codepublic static void main(String args[]){    int n = 1012;     countDigit(n);}} // This code is contributed// by Akanksha Rai(Abby_akku)
# 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 codeif __name__=='__main__':         n = 1012    countDigit(n) # This code is contributed# by Kirti_Mangal    
// C# implementation of the// above approachusing 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 codepublic static void Main(){    int n = 1012;     countDigit(n);}} // This code is contributed// by Akanksha Rai(Abby_akku)
<?php// PHP implementation of the above approach // Print the sum and product of digits// that divides the number.function countDigit($n){    $temp = $n;    $sum = 0;    $product = 1;    while ($temp != 0) {         // Fetching each digit of the number        $d = $temp % 10;        $temp =(int)($temp/10);         // Checking if digit is greater than 0        // and can divides n.        if ($d > 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?>
<script>// java script  implementation of the above approach // Print the sum and product of digits// that divides the number.function countDigit(n){    let temp = n;    let sum = 0;    let product = 1;    while (temp != 0) {         // Fetching each digit of the number        let d = temp % 10;        temp =parseInt(temp/10);         // Checking if digit is greater than 0        // and can divides n.        if (d > 0 && n % d == 0) {            sum += d;            product *= d;        }    }     document.write( "Sum = "+sum);    document.write( "<br>Product = "+product);} // Driver code     let n = 1012;     countDigit(n);     // This code is contributed by Gottumukkala Bobby</script>
Sum = 4
Product = 2
 
Kirti_Mangal
Akanksha_Rai
Mithun Kumar
gottumukkalabobby
Number Divisibility
number-digits
Mathematical
Mathematical
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Algorithm to solve Rubik's Cube
Merge two sorted arrays with O(1) extra space
Program to print prime numbers from 1 to N.
Find next greater number with same set of digits
Segment Tree | Set 1 (Sum of given range)
Check if a number is Palindrome
Count ways to reach the n'th stair
Fizz Buzz Implementation
Count all possible paths from top left to bottom right of a mXn matrix
Product of Array except itself