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:
- Calculate the sum of all digits.
- If the sum is even:
- Check if the sum is divisible by 4
- Else if the sum is odd:
- Check if it is divisible by 3.
- 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> |
No
Time Complexity: O(N)
Auxiliary Space: O(1) as it is using constant space for variables
Method #2: Using string:
- We have to convert the given number to a string by taking a new variable.
- Traverse the string, Convert each element to integer and add this to sum.
- If the sum is even, Check if the sum is divisible by 4
- Else if the sum is odd, Check if it is divisible by 3.
- 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 <iostream> 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
<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> |
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<length; i++) { // Converting character to int int x=st[i] - '0' ; sum+=x; } if ((sum % 2 == 0 && sum % 4 == 0) || (sum % 2 != 0 && sum % 3 == 0)) return "Yes" ; return "No" ; } public static void Main(String []args) { int n = 202; // passing this number to get result function Console.WriteLine(getResult(n)); } } |
Yes
Time Complexity: O(N)
Auxiliary Space: O(N)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!