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

• Last Updated : 01 Feb, 2023

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

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)
Auxiliary Space: O(1) as it is using constant space for variables

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

## C++

 `// C++ implementation of above approach``#include ``using` `namespace` `std;``string getResult(``int` `n)``{` `  ``// Converting integer to string``  ``string st = to_string(n);` `  ``// Initialising sum to 0``  ``int` `sum = 0;``  ``int` `length = st.length();` `  ``// Traversing through the string``  ``for` `(``auto` `i : st)``  ``{``    ` `    ``// Converting character to int``    ``sum = sum + i - ``'0'``;``  ``}``  ``if` `((sum % 2 == 0 and sum % 4 == 0)``      ``or (sum % 2 != 0 and sum % 3 == 0))``    ``return` `"Yes"``;` `  ``return` `"No"``;``}``int` `main()``{` `  ``int` `n = 202;` `  ``// passing this number to get result function``  ``cout << getResult(n);` `  ``return` `0;``}` `// This code is contributed by Abhijeet Kumar(abhijeet19403)`

## Java

 `// Java implementation of above approach``import` `java.io.*;` `class` `GFG {` `  ``// Function to get Result``  ``static` `String getResult(``int` `n)``  ``{` `    ``// Converting integer to string``    ``String st = Integer.toString(n);` `    ``// Initialising sum to 0``    ``int` `sum = ``0``;``    ``int` `length = st.length();` `    ``// Traversing through the string``    ``for` `(``int` `i = ``0``; i < length; i++)``    ``{` `      ``// Converting character to int``      ``sum = sum + st.charAt(i) - ``'0'``;``    ``}``    ``if` `((sum % ``2` `== ``0` `&& sum % ``4` `== ``0``)``        ``|| (sum % ``2` `!= ``0` `&& sum % ``3` `== ``0``))``      ``return` `"Yes"``;` `    ``return` `"No"``;``  ``}` `  ``// Driver code``  ``public` `static` `void` `main(String[] args)``  ``{` `    ``int` `n = ``202``;` `    ``// Passing this number to get result function``    ``System.out.println(getResult(n));``  ``}``}` `// This code is contributed by factworx412`

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

 ``

## C#

 `// C# implementation of above approach` `using` `System;``class` `Gfg{``    ``static` `string` `getResult(``int` `n)``    ``{``    ` `      ``// Converting integer to string``      ``string` `st = n.ToString();``      ``// Initialising sum to 0``      ``int` `sum = 0;``      ``int` `length = st.Length;``    ` `      ``// Traversing through the string``      ``for` `(``int` `i=0; i

Output

`Yes`

Time Complexity: O(N)
Auxiliary Space: O(logN)

My Personal Notes arrow_drop_up