Related Articles

# 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 : 08 Jun, 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:

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

 ` 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

 ``
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:

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

 ``

Output:

`TRUE`

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.

My Personal Notes arrow_drop_up