Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

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 <bits/stdc++.h>
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




<?php
// PHP implementation of above algorithm
 
// Function to check the sum
function checkSum($num)
{
    $sum = 0;
     
    // Traverse each digit
    for ($i = 0; $i < sizeof($num); $i++)
    {
 
        // converting a character to
        // integer by taking difference
        // of their ASCII value
        $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
$num = "12347";
if(checkSum($num))
    echo "Yes";
else
    echo "No";
 
// This code is contributed by
// Akanksha Rai(Abby_akku)

Javascript




<script>
 
// JavaScript implementation of above algorithm
 
// Function to check the sum
function checkSum(num)
{
    let sum = 0;
 
    // Traverse each digit
    for (let i = 0; i < num.length; i++) {
 
        // converting a character to integer by
        // taking difference of their ASCII value
        let 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
 
    let num = "12347";
    document.write(checkSum(num) ?
                              "Yes" : "No");
 
 
// This code is contributed by Surbhi Tyagi.
 
</script>
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




<script>
 
// JavaScript implementation of above approach
function getResult(n){
   
    // Converting integer to string
    var st = n.toString();
     
    // Initialising sum to 0
    var sum = 0
    var length = st.length;
 
    // Traversing through the string
    for(let i=0 ; i< st.length ; i++ ){
 
        // Converting character to int
        sum = sum + Number(st[i])
    }
         
    if ((sum % 2 == 0 && sum % 4 == 0) ||
            (sum % 2 != 0 && sum % 3 == 0)){
        return 'Yes'
    }
    else{
    return 'No';
    }
   }
 
 
// Driver Code
var n = 202;
 
// passing this number to get result function
document.write(getResult(n))
 
 
</script>

Output:

Yes

Time Complexity: O(N)




My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!