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!
