Find the maximum sum of digits of the product of two numbers - GeeksforGeeks

16 Mar, 2021
Given an array arr[] of size N( > 2). The task is to find the maximum sum of digits of the product of any two numbers of the given array.Examples:  
Input : arr[] = {8, 7} Output : 11 The product of 8 and 7 is 56. The sum of the digits of 56 is equal to 11.Input : arr[] = {4, 3, 5} Output : 6 Product of 4 & 3 = 12. Sum of the digits = 3. Product of 3 & 5 = 15. Sum of the digits = 6. Product of 4 & 5 = 20. Sum of the digits = 2. 
 
Approach: Run nested loops to select two numbers of the array and get the product. For every product check the digit sum and find the maximum digit sum.Below is the implementation of the above approach:  
C++
Java
Python3
C#
Javascript
// C++ program find the maximum sum of// digits of the product of two numbers#include <bits/stdc++.h>using namespace std; // Function to find the sum of the digitsint sumDigits(int n){    int digit_sum = 0;    while (n) {        digit_sum += n % 10;        n /= 10;    }    return digit_sum;} // Function to find the maximum sum of digits of productint productOfNumbers(int arr[], int n){    int sum = INT_MIN;     // Run nested loops    for (int i = 0; i < n - 1; i++) {        for (int j = i + 1; j < n; j++) {            int product = arr[i] * arr[j];             // Find the maximum sum            sum = max(sum, sumDigits(product));        }    }     // Return the required answer    return sum;} // Driver codeint main(){    int arr[] = { 4, 3, 5 };     int n = sizeof(arr) / sizeof(arr[0]);     cout << productOfNumbers(arr, n);     return 0;}
// Java program find the maximum sum of// digits of the product of two numbersimport java.io.*; class GFG{ // Function to find the sum of the digitsstatic int sumDigits(int n){    int digit_sum = 0;    while (n > 0)    {        digit_sum += n % 10;        n /= 10;    }    return digit_sum;} // Function to find the maximum sum// of digits of productstatic int productOfNumbers(int []arr, int n){    int sum = Integer.MIN_VALUE;     // Run nested loops    for (int i = 0; i < n - 1; i++)    {        for (int j = i + 1; j < n; j++)        {            int product = arr[i] * arr[j];             // Find the maximum sum            sum = Math.max(sum, sumDigits(product));        }    }     // Return the required answer    return sum;} // Driver codepublic static void main (String[] args){    int []arr = { 4, 3, 5 };         int n = arr.length;         System.out.print( productOfNumbers(arr, n));}} // This code is contributed by anuj_67..
# Python3 program find the maximum sum of# digits of the product of two numbersimport sys # Function to find the sum of the digitsdef sumDigits(n):     digit_sum = 0;    while (n > 0):        digit_sum += n % 10;        n /= 10;         return digit_sum; # Function to find the maximum sum# of digits of productdef productOfNumbers(arr, n):     sum = -sys.maxsize - 1;     # Run nested loops    for i in range(n - 1):        for j in range(i + 1, n):            product = arr[i] * arr[j];             # Find the maximum sum            sum = max(sum, sumDigits(product));     # Return the required answer    return sum; # Driver codeif __name__ == '__main__':     arr =[ 4, 3, 5 ];     n = len(arr);     print(int(productOfNumbers(arr, n))); # This code contributed by PrinciRaj1992
// C# program find the maximum sum of// digits of the product of two numbersusing System; class GFG{ // Function to find the sum of the digitsstatic int sumDigits(int n){    int digit_sum = 0;    while (n > 0)    {        digit_sum += n % 10;        n /= 10;    }    return digit_sum;} // Function to find the maximum sum// of digits of productstatic int productOfNumbers(int []arr, int n){    int sum = int.MinValue;     // Run nested loops    for (int i = 0; i < n - 1; i++)    {        for (int j = i + 1; j < n; j++)        {            int product = arr[i] * arr[j];             // Find the maximum sum            sum = Math.Max(sum, sumDigits(product));        }    }     // Return the required answer    return sum;} // Driver codepublic static void Main (String[] args){    int []arr = { 4, 3, 5 };         int n = arr.Length;         Console.Write(productOfNumbers(arr, n));}} // This code is contributed by 29AjayKumar
<script>     // Javascript program find the maximum sum of    // digits of the product of two numbers         // Function to find the sum of the digits    function sumDigits(n)    {        let digit_sum = 0;        while (n > 0) {            digit_sum += n % 10;            n = parseInt(n / 10, 10);        }        return digit_sum;    }     // Function to find the maximum sum of digits of product    function productOfNumbers(arr, n)    {        let sum = Number.MIN_VALUE;         // Run nested loops        for (let i = 0; i < n - 1; i++) {            for (let j = i + 1; j < n; j++) {                let product = arr[i] * arr[j];                 // Find the maximum sum                sum = Math.max(sum, sumDigits(product));            }        }         // Return the required answer        return sum;    }           let arr = [ 4, 3, 5 ];       let n = arr.length;       document.write(productOfNumbers(arr, n));     </script>
Output:  
6
 
vt_m
29AjayKumar
princiraj1992
divyesh072019
number-digits
Numbers
Arrays
Arrays
Numbers
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Maximum and minimum of an array using minimum number of comparisons
Top 50 Array Coding Problems for Interviews
Stack Data Structure (Introduction and Program)
Introduction to Arrays
Multidimensional Arrays in Java
Linear Search
Linked List vs Array
Python | Using 2D arrays/lists the right way
Search an element in a sorted and rotated array
Queue | Set 1 (Introduction and Array Implementation)