Given two integers “N” and “K”, the task is to find the sum of the digits “N” in odd digits (from right to left) and check if the sum is divisible by “K”. If divisible, the output is, otherwise output NO.
Example:
Input: N = 4325, K = 4
Output: YES, because 3 + 5 = 8, divisible by 4.
Input: N = 1209, K = 3
Output: NO
Method:
- Find the sum of the numbers of “N” in an odd number of positions (from right to left).
- Then, take the modulo with “K” and check the divisibility of the sum.
- If divisible, it outputs “Yes”, otherwise “No”.
Here’s an implementation of the above method:
C++
//C++ implementation of the approach
#include <bits/stdc++.h>
using namespace std;
//function that checks the
//divisibility of the sum
//of the digits at odd places
//of the given number
bool SumDivisible( int n, int k)
{
int sum = 0, position = 1;
while (n> 0) {
//if position is odd
if (position % 2 == 1)
sum += n % 10;
n = n /10;
position++;
}
if (sum % k == 0)
return true ;
return false ;
}
//Driver code
int main()
{
int n = 592452;
int k = 3;
if (SumDivisible(n, k))
cout <<"YES" ;
else
cout <<"NO" ;
return 0;
}
Java
//Java implementation of the approach
import java.util.*;
class solution
{
//function that checks the
//divisibility of the sum
//of the digits at odd places
//of the given number
static boolean SumDivisible( int n, int k)
{
int sum = 0 , position = 1 ;
while (n> 0 ) {
//if position is odd
if (position % 2 == 1 )
sum += n % 10 ;
n = n /10 ;
position++;
}
if (sum % k == 0 )
return true ;
return false ;
}
//Driver code
public static void main(String arr[])
{
int n = 592452 ;
int k = 3 ;
if (SumDivisible(n, k))
System.out.println( "YES" );
else
System.out.println( "NO" );
}
}
//This code is contributed by Surendra_Gangwar
Python 3
# Python 3 implementation of the approach
# function that checks the divisibility
# of the sum of the digits at odd places
# of the given number
def SumDivisible(n, k):
sum = 0
position = 1
while (n> 0 ) :
# if position is odd
if (position % 2 = = 1 ):
sum + = n % 10
n = n //10
position + = 1
if ( sum % k = = 0 ):
return True
return False
# Driver code
if __name__ = = "__main__" :
n = 592452
k = 3
if (SumDivisible(n, k)):
print ( "YES" )
else :
print ( "NO" )
# This code is contributed
# by ChitraNayal
C#
//C# implementation of the approach
using System;
class GFG
{
//function that checks the
//divisibility of the sum
//of the digits at odd places
//of the given number
static bool SumDivisible( int n, int k)
{
int sum = 0, position = 1;
while (n> 0)
{
//if position is odd
if (position % 2 == 1)
sum += n % 10;
n = n /10;
position++;
}
if (sum % k == 0)
return true ;
return false ;
}
//Driver code
static public void Main ()
{
int n = 592452;
int k = 3;
if (SumDivisible(n, k))
Console.WriteLine( "YES" );
else
Console.WriteLine( "NO" );
}
}
//This code is contributed by Sachin
PHP
<?php
//PHP implementation of the approach
//function that checks the divisibility
//of the sum of the digits at odd places
//of the given number
function SumDivisible( $n , $k )
{
$sum = 0;
$position = 1;
while ( $n> 0)
{
//if position is odd
if ( $position % 2 == 1)
$sum += $n % 10;
$n = (int) $n /10;
$position ++;
}
if ( $sum % $k == 0)
return true;
return false;
}
//Driver code
$n = 592452;
$k = 3;
if (SumDivisible( $n , $k ))
echo "YES" ;
else
echo "NO" ;
//This code is contributed
//by Sach_Code
?>
The output is as follows:
YES