Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Check whether product of digits at even places is divisible by sum of digits at odd place of a number

  • Difficulty Level : Hard
  • Last Updated : 11 Nov, 2021

Given a number N and numbers of digits in N, the task is to check whether the product of digits at even places of a number is divisible by sum of digits at odd place. If it is divisible, output “TRUE” otherwise output “FALSE”. 

Examples: 

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

Input: N = 2157 
Output: TRUE
Since, 1 * 7 = 7, which is divisible by 2+5=7

Input: N = 1234
Output: TRUE
Since, 2 * 4 = 8, which is divisible by 1 + 3 = 4   

Approach:  



  1. Find product of digits at even places from right to left.
  2. Find sum of digits at odd places from right to left.
  3. Then check the divisibility of product by taking it’s modulo with sum
  4. If modulo gives 0, output TRUE, otherwise output FALSE

Below is the implementation of the above approach:  

C++




// C++ implementation of the above approach
#include <bits/stdc++.h>
using namespace std;
 
// below function checks whether
// product of digits at even places
// is divisible by sum of digits at odd places
bool productSumDivisible(int n, int size)
{
    int sum = 0, product = 1;
    while (n > 0) {
 
        // if size is even
        if (size % 2 == 0) {
            product *= n % 10;
        }
 
        // if size is odd
        else {
            sum += n % 10;
        }
        n = n / 10;
        size--;
    }
 
    if (product % sum == 0)
        return true;
    return false;
}
 
// Driver code
int main()
{
    int n = 1234;
    int len = 4;
 
    if (productSumDivisible(n, len))
        cout << "TRUE";
    else
        cout << "FALSE";
 
    return 0;
}

Java




// JAVA implementation of the above approach
 
class GFG {
 
    // below function checks whether
    // product of digits at even places
    // is divisible by sum of digits at odd places
    static boolean productSumDivisible(int n, int size)
    {
        int sum = 0, product = 1;
        while (n > 0) {
 
            // if size is even
            if (size % 2 == 0) {
                product *= n % 10;
            }
 
            // if size is odd
            else {
                sum += n % 10;
            }
            n = n / 10;
            size--;
        }
 
        if (product % sum == 0) {
            return true;
        }
        return false;
    }
    // Driver code
 
    public static void main(String[] args)
    {
        int n = 1234;
        int len = 4;
 
        if (productSumDivisible(n, len)) {
            System.out.println("TRUE");
        }
        else {
            System.out.println("FALSE");
        }
    }
}

Python3




# Python 3 implementation of the above approach
 
# Below function checks whether product
# of digits at even places is divisible
# by sum of digits at odd places
def productSumDivisible(n, size):
    sum = 0
    product = 1
    while (n > 0) :
 
        # if size is even
        if (size % 2 == 0) :
            product *= n % 10
 
        # if size is odd
        else :
            sum += n % 10
         
        n = n // 10
        size -= 1
 
    if (product % sum == 0):
        return True
    return False
 
# Driver code
if __name__ == "__main__":
    n = 1234
    len = 4
 
    if (productSumDivisible(n, len)):
        print("TRUE")
    else :
        print("FALSE")
 
# This code is contributed by ChitraNayal

C#




// C# implementation of the above approach
using System;
 
class GFG {
 
    // below function checks whether
    // product of digits at even places
    // is divisible by K
    static bool productSumDivisible(int n, int size)
    {
        int sum = 0, product = 1;
        while (n > 0) {
 
            // if size is even
            if (size % 2 == 0) {
                product *= n % 10;
            }
 
            // if size is odd
            else {
                sum += n % 10;
            }
            n = n / 10;
            size--;
        }
 
        if (product % sum == 0) {
            return true;
        }
        return false;
    }
 
    // Driver code
    public static void Main()
    {
        int n = 1234;
        int len = 4;
 
        if (productSumDivisible(n, len))
            Console.WriteLine("TRUE");
        else
            Console.WriteLine("FALSE");
    }
}

PHP




<?php
// PHP implementation of the above approach
 
// Below function checks whether
// product of digits at even
// places is divisible by sum of
// digits at odd places
function productSumDivisible($n, $size)
{
    $sum = 0; $product = 1;
    while ($n > 0)
    {
 
        // if size is even
        if ($size % 2 == 0)
        {
            $product *= $n % 10;
        }
 
        // if size is odd
        else
        {
            $sum += $n % 10;
        }
        $n = $n / 10;
        $size--;
    }
 
    if ($product % $sum == 0)
        return true;
    return false;
}
 
// Driver code
$n = 1234;
$len = 4;
 
if (productSumDivisible($n, $len))
    echo "TRUE";
else
    echo "FALSE";
 
// This code is contributed by anuj_67..
?>

Javascript




<script>
 
// Javascript implementation of the above approach
 
// below function checks whether
// product of digits at even places
// is divisible by sum of digits at odd places
function productSumDivisible(n, size)
{
    var sum = 0, product = 1;
    while (n > 0) {
 
        // if size is even
        if (size % 2 == 0) {
            product *= n % 10;
        }
 
        // if size is odd
        else {
            sum += n % 10;
        }
        n = parseInt(n / 10);
        size--;
    }
 
    if (product % sum == 0)
        return true;
    return false;
}
 
// Driver code
var n = 1234;
var len = 4;
if (productSumDivisible(n, len))
    document.write("TRUE");
else
    document.write("FALSE");
 
// This code is contributed by noob2000.
</script>
Output: 
TRUE

 

Method #2:Using string() method

Convert the integer to string then traverse the string and perform two operations

  • Multiply all odd indices and store them in product
  • Add all even indices and store them in sum
  • If the product is divisible by sum then return True else False

Below is the implementation:

C++




// C++ implementation of the above approach
#include <iostream>
 
using namespace std;
#include<string>
 
  // Below function checks whether product
  // of digits at even places is divisible
  // by sum of digits at odd places
bool  productSumDivisible(int n)
  {
    int sum = 0;
    int product = 1;
 
    // Converting integer to string
    string num = to_string(n);
 
    // Traveersing the string
    for(int i = 0 ; i < num.length() ; i++ ) {
      if(i % 2 != 0){
        product = product*(num[i]);
      }
      else{
        sum = sum+int(num[i]);
      }
    }
 
    if (product % sum == 0){
      return true ;
    }
    else{
      return false;
    }       
  }
 
  // Driver code
 int main()
 {
 
    int n = 1234;
 
    if (productSumDivisible(n))
    {
      cout<<"true";
    }
    else{
     cout<<"false";
    }
   
}
 
// This code is contributed by akshitsaxena07

Java




// Java implementation of the above approach
import java.io.*;
 
class GFG {
 
  // Below function checks whether product
  // of digits at even places is divisible
  // by sum of digits at odd places
  static boolean productSumDivisible(int n)
  {
    int sum = 0;
    int product = 1;
 
    // Converting integer to string
    String num = String.valueOf(n);
 
    // Traveersing the string
    for(int i = 0 ; i < num.length() ; i++ ) {
      if(i % 2 != 0){
        product = product*Character.getNumericValue(num.charAt(i));
      }
      else{
        sum = sum+Character.getNumericValue(num.charAt(i));
      }
    }
 
    if (product % sum == 0){
      return true ;
    }
    else{
      return false;
    }       
  }
 
  // Driver code
  public static void main (String[] args) {
 
    int n = 1234;
 
    if (productSumDivisible(n))
    {
      System.out.println("TRUE");
    }
    else{
      System.out.println("FALSE");
    }
  }
}
 
// This code is contributed by rag2127.

Python3




# Python 3 implementation of the above approach
 
# Below function checks whether product
# of digits at even places is divisible
# by sum of digits at odd places
def productSumDivisible(n):
    sum = 0
    product = 1
     
    # Converting integer to string
    num = str(n)
     
    # Traveersing the string
    for i in range(len(num)):
        if(i % 2 != 0):
            product = product*int(num[i])
        else:
            sum = sum+int(num[i])
 
    if (product % sum == 0):
        return True
    return False
 
 
# Driver code
if __name__ == "__main__":
    n = 1234
 
    if (productSumDivisible(n)):
        print("TRUE")
    else:
        print("FALSE")
 
# This code is contributed by vikkycirus

C#




// C# implementation of the above approach
using System;
 
class GFG{
     
// Below function checks whether product
// of digits at even places is divisible
// by sum of digits at odd places
static bool productSumDivisible(int n)
{
    int sum = 0;
    int product = 1;
     
    // Converting integer to string
    string num = n.ToString();
     
    // Traveersing the string
    for(int i = 0; i < num.Length; i++ )
    {
        if (i % 2 != 0)
        {
            product = product*(int)Char.GetNumericValue(num[i]);
        }
        else
        {
            sum = sum+(int)Char.GetNumericValue(num[i]);
        }
    }
     
    if (product % sum == 0)
    {
        return true;
    }
    else
    {
        return false;
    }      
}
 
// Driver code
static public void Main()
{
    int n = 1234;
     
    if (productSumDivisible(n))
    {
        Console.WriteLine("TRUE");
    }
    else
    {
        Console.WriteLine("FALSE");
    }
}
}
 
// This code is contributed by avanitrachhadiya2155

Javascript




<script>
 
// JavaScript implementation of the above approach
  
// Below function checks whether product
// of digits at even places is divisible
// by sum of digits at odd places
function productSumDivisible(n){
    var sum = 0
    var product = 1
      
    // Converting integer to string
    var num = n.toString();
      
    // Traveersing the string
    for(i = 0 ; i < num.length ; i++ ) {
        if(i % 2 != 0){
            product = product*Number(num[i])
        }
        else{
            sum = sum+Number(num[i])
        }
    }
  
    if (product % sum == 0){
        return true ;
     }
    else{
    return false;
    }
}
  
  
// Driver code
   var  n = 1234
  
    if (productSumDivisible(n)){
        document.write("TRUE")
    }
    else{
        document.write("FALSE")
    }
     
</script>

Output:

TRUE



My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!