# Even digits Sum and Odd digits sum divisible by 4 and 3 respectively

• Last Updated : 28 May, 2021

Given a number N represented as a string The task is to print ‘Yes’ if the sum of digits is even and is divisible by 4 or if the sum of digits is odd and is divisible by 3 otherwise ‘No’.
Examples:

```Input:  12345
Output: Yes

Input: 894561
Output: Yes   ```

Below is the step by step algorithm

Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for the language and STL. To complete your preparation from learning a language to DS Algo and many more, please refer Complete Interview Preparation Course.
1. Calculate the sum of all digits.
2. If the sum is even:
• Check if the sum is divisible by 4
3. Else if the sum is odd:
• Check if it is divisible by 3.
4. Print Yes, if any of the case in step 2 or step 3 satisfies otherwise print No.

## C++

 `// C++ implementation of above algorithm` `#include ``using` `namespace` `std;` `// Function to check the sum``bool` `checkSum(string num)``{``    ``int` `sum = 0;` `    ``// Traverse each digit``    ``for` `(``int` `i = 0; i < num.length(); i++) {` `        ``// converting a character to integer by``        ``// taking difference of their ASCII value``        ``int` `digit = num[i] - ``'0'``;``        ``sum += digit;``    ``}` `    ``// Check if sum is even and divisible by 4``    ``// or if sum is odd and divisible by 3 then``    ``// return true, else return false``    ``if` `((sum % 2 == 0 && sum % 4 == 0)``        ``|| (sum % 2 != 0 && sum % 3 == 0))``        ``return` `true``;` `    ``return` `false``;``}` `// Driver code``int` `main()``{` `    ``string num = ``"12347"``;``    ``checkSum(num) ? cout << ``"Yes"` `: cout << ``"No"``;` `    ``return` `0;``}`

## Java

 `// Java implementation of above algorithm``import` `java.lang.*;``class` `Geeks {` `// Function to check the sum``static` `boolean` `checkSum(String num)``{``    ``int` `sum = ``0``;``    ` `    ``// Traverse each digit``    ``for` `(``int` `i = ``0``; i < num.length(); i++)``    ``{` `            ``// converting a character to integer by``            ``// taking difference of their ASCII value``            ``int` `digit = num.charAt(i) - ``'0'``;``            ``sum += digit;``        ``}``        ` `    ``// Check if sum is even and divisible by 4``    ``// or if sum is odd and divisible by 3 then``    ``// return true, else return false``    ``if` `((sum % ``2` `== ``0` `&& sum % ``4` `== ``0``) ||``        ``(sum % ``2` `!=``0` `&& sum % ``3` `== ``0``))``        ``return` `true``;``        ` `    ``return` `false``;``}` `// Driver code``public` `static` `void` `main(String args[])``{` `    ``String num = ``"12347"``;``    ``System.out.println(checkSum(num) ? ``"Yes"` `: ``"No"``);` `}``}` `// This code is contributed by ankita_saini.`

## Python 3

 `# Python 3 implementation of``# above algorithm` `# Function to check the sum``def` `checkSum(num):` `    ``sum` `=` `0``    ` `    ``# Traverse each digit``    ``for` `i ``in` `range``(``len``(num)):` `        ``# converting a character to``        ``# integer by taking difference``        ``# of their ASCII value``        ``digit ``=` `ord``(num[i]) ``-` `ord``(``'0'``)``        ``sum` `+``=` `digit``        ` `    ``# Check if sum is even and``    ``# divisible by 4 or if sum``    ``# is odd and divisible by 3``    ``# then return true, else``    ``# return false``    ``if` `((``sum` `%` `2` `=``=` `0` `and` `sum` `%` `4` `=``=` `0``) ``or``        ``(``sum` `%` `2` `!``=` `0` `and` `sum` `%` `3` `=``=` `0``)):``        ``return` `True``        ` `    ``return` `False` `# Driver code``if` `__name__ ``=``=` `"__main__"``:``    ` `    ``num ``=` `"12347"``    ``print``(``"Yes"``) ``if` `checkSum(num) ``else` `print``(``"No"``)` `# This code is contributed``# by ChitraNayal`

## C#

 `// C# implementation of above algorithm``using` `System;` `class` `GFG``{` `// Function to check the sum``static` `bool` `checkSum(String num)``{``    ``int` `sum = 0;``    ` `    ``// Traverse each digit``    ``for` `(``int` `i = 0; i < num.Length; i++)``    ``{` `        ``// converting a character to``        ``// integer by taking difference``        ``// of their ASCII value``        ``int` `digit = num[i] - ``'0'``;``        ``sum += digit;``    ``}``        ` `    ``// Check if sum is even and``    ``// divisible by 4 or if sum``    ``// is odd and divisible by 3``    ``// then return true, else``    ``// return false``    ``if` `((sum % 2 == 0 && sum % 4 == 0) ||``        ``(sum % 2 !=0 && sum % 3 == 0))``        ``return` `true``;``        ` `    ``return` `false``;``}` `// Driver code``public` `static` `void` `Main(String []args)``{``    ``String num = ``"12347"``;``    ``Console.WriteLine(checkSum(num) ?``                              ``"Yes"` `: ``"No"``);``}``}` `// This code is contributed``// by ankita_saini.`

## PHP

 `

## Javascript

 ``
Output:
`No`

Time Complexity: O(N)

#### Method #2: Using string:

1. We have to convert the given number to a string by taking a new variable.
2. Traverse the string, Convert each element to integer and add this to sum.
3. If the sum is even, Check if the sum is divisible by 4
4. Else if the sum is odd, Check if it is divisible by 3.
5. Print Yes, if any of the case in step 3 or step 4 satisfies otherwise print No.

Below is the implementation of the above approach:

## Python3

 `# Python implementation of above approach``def` `getResult(n):``  ` `    ``# Converting integer to string``    ``st ``=` `str``(n)``    ` `    ``# Initialising sum to 0``    ``sum` `=` `0``    ``length ``=` `len``(st)` `    ``# Traversing through the string``    ``for` `i ``in` `st:` `        ``# Converting character to int``        ``sum` `=` `sum` `+` `int``(i)``        ` `    ``if` `((``sum` `%` `2` `=``=` `0` `and` `sum` `%` `4` `=``=` `0``) ``or``            ``(``sum` `%` `2` `!``=` `0` `and` `sum` `%` `3` `=``=` `0``)):``        ``return` `'Yes'` `    ``return` `'No'`  `# Driver Code``n ``=` `202` `# passing this number to get result function``print``(getResult(n))` `# this code is contributed by vikkycirus`

## Javascript

 ``

#### Output:

`Yes`

Time Complexity: O(N)

My Personal Notes arrow_drop_up