Even digits Sum and Odd digits sum divisible by 4 and 3 respectively
Last Updated :
13 Mar, 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:
- 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++
#include <bits/stdc++.h>
using namespace std;
bool checkSum(string num)
{
int sum = 0;
for ( int i = 0; i < num.length(); i++) {
int digit = num[i] - '0' ;
sum += digit;
}
if ((sum % 2 == 0 && sum % 4 == 0)
|| (sum % 2 != 0 && sum % 3 == 0))
return true ;
return false ;
}
int main()
{
string num = "12347" ;
checkSum(num) ? cout << "Yes" : cout << "No" ;
return 0;
}
|
Java
import java.lang.*;
class Geeks {
static boolean checkSum(String num)
{
int sum = 0 ;
for ( int i = 0 ; i < num.length(); i++)
{
int digit = num.charAt(i) - '0' ;
sum += digit;
}
if ((sum % 2 == 0 && sum % 4 == 0 ) ||
(sum % 2 != 0 && sum % 3 == 0 ))
return true ;
return false ;
}
public static void main(String args[])
{
String num = "12347" ;
System.out.println(checkSum(num) ? "Yes" : "No" );
}
}
|
Python 3
def checkSum(num):
sum = 0
for i in range ( len (num)):
digit = ord (num[i]) - ord ( '0' )
sum + = digit
if (( sum % 2 = = 0 and sum % 4 = = 0 ) or
( sum % 2 ! = 0 and sum % 3 = = 0 )):
return True
return False
if __name__ = = "__main__" :
num = "12347"
print ( "Yes" ) if checkSum(num) else print ( "No" )
|
C#
using System;
class GFG
{
static bool checkSum(String num)
{
int sum = 0;
for ( int i = 0; i < num.Length; i++)
{
int digit = num[i] - '0' ;
sum += digit;
}
if ((sum % 2 == 0 && sum % 4 == 0) ||
(sum % 2 !=0 && sum % 3 == 0))
return true ;
return false ;
}
public static void Main(String []args)
{
String num = "12347" ;
Console.WriteLine(checkSum(num) ?
"Yes" : "No" );
}
}
|
PHP
<?php
function checkSum( $num )
{
$sum = 0;
for ( $i = 0; $i < sizeof( $num ); $i ++)
{
$digit = $num [ $i ] - '0' ;
$sum += $digit ;
}
if (( $sum % 2 == 0 && $sum % 4 == 0) ||
( $sum % 2 != 0 && $sum % 3 == 0))
return true;
return false;
}
$num = "12347" ;
if (checkSum( $num ))
echo "Yes" ;
else
echo "No" ;
|
Javascript
<script>
function checkSum(num)
{
let sum = 0;
for (let i = 0; i < num.length; i++) {
let digit = num.charAt(i) - '0' ;
sum += digit;
}
if ((sum % 2 == 0 && sum % 4 == 0)
|| (sum % 2 != 0 && sum % 3 == 0))
return true ;
return false ;
}
let num = "12347" ;
document.write(checkSum(num) ?
"Yes" : "No" );
</script>
|
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++
#include <iostream>
using namespace std;
string getResult( int n)
{
string st = to_string(n);
int sum = 0;
int length = st.length();
for ( auto i : st)
{
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;
cout << getResult(n);
return 0;
}
|
Java
import java.io.*;
class GFG {
static String getResult( int n)
{
String st = Integer.toString(n);
int sum = 0 ;
int length = st.length();
for ( int i = 0 ; i < length; i++)
{
sum = sum + st.charAt(i) - '0' ;
}
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 ;
System.out.println(getResult(n));
}
}
|
Python3
def getResult(n):
st = str (n)
sum = 0
length = len (st)
for i in st:
sum = sum + int (i)
if (( sum % 2 = = 0 and sum % 4 = = 0 ) or
( sum % 2 ! = 0 and sum % 3 = = 0 )):
return 'Yes'
return 'No'
n = 202
print (getResult(n))
|
Javascript
<script>
function getResult(n){
var st = n.toString();
var sum = 0
var length = st.length;
for (let i=0 ; i< st.length ; i++ ){
sum = sum + Number(st[i])
}
if ((sum % 2 == 0 && sum % 4 == 0) ||
(sum % 2 != 0 && sum % 3 == 0)){
return 'Yes'
}
else {
return 'No' ;
}
}
var n = 202;
document.write(getResult(n))
</script>
|
C#
using System;
class Gfg{
static string getResult( int n)
{
string st = n.ToString();
int sum = 0;
int length = st.Length;
for ( int i=0; i<length; i++)
{
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;
Console.WriteLine(getResult(n));
}
}
|
Time Complexity: O(N)
Auxiliary Space: O(N)
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...