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.

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++

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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 code
int main()
{
    int n = 1012;
  
    countDigit(n);
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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)

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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
     

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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)

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?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
?>

chevron_right


Output:

Sum = 4
Product = 2


My Personal Notes arrow_drop_up

Discovering ways to develop a plane for soaring career goals

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.