Program to check if a number is divisible by sum of its digits

Given an integer N, the task is to check whether the number is divisible by the sum of its digits or not. If divisible, then print “YES” else print “NO”.

Examples:

Input: N = 12 
Output: YES
Explanation: 
    As sum of digits of 12 = 1 + 2 = 3
    and 12 is divisible by 3 
    So the output is YES

Input: N = 123
Output: NO

Approach: The idea to solve the problem is to extract the digits of the number and add them. Then check if the number is divisible by the sum of its digit. If it is divisible then print YES otherwise print NO.

Below is the implementation of above approach:

Implementation:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// CPP implementation of above approach
  
#include <bits/stdc++.h>
using namespace std;
  
// Function to check
// if the given number is divisible
// by sum of its digits
string isDivisible(long long int n)
{
    long long int temp = n;
  
    // Find sum of digits
    int sum = 0;
    while (n) {
        int k = n % 10;
        sum += k;
        n /= 10;
    }
  
    // check if sum of digits divides n
    if (temp % sum == 0)
        return "YES";
  
    return "NO";
}
  
// Driver Code
int main()
{
    long long int n = 123;
  
    cout << isDivisible(n);
  
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java implementation of above approach 
class GFG
{
  
    // Function to check if the 
    // given number is divisible 
    // by sum of its digits 
    static String isDivisible(long n) 
    
        long temp = n; 
      
        // Find sum of digits 
        int sum = 0
        while (n != 0
        
            int k = (int) n % 10
            sum += k; 
            n /= 10
        
      
        // check if sum of digits divides n 
        if (temp % sum == 0
            return "YES"
      
        return "NO"
    
      
    // Driver Code 
    public static void main(String []args)
    
        long n = 123
        System.out.println(isDivisible(n)); 
    
}
  
// This code is contributed by Ryuga

chevron_right


Python3

# Python 3 implementation of above approach

# Function to check if the given number
# is divisible by sum of its digits
def isDivisible(n):

temp = n

# Find sum of digits
sum = 0;
while (n):

k = n % 10;
sum += k;
n /= 10;

# check if sum of digits divides n
if (temp % sum == 0):
return “YES”;

return “NO”;

# Driver Code
n = 123;

print(isDivisible(n));

# This code is contributed by
# Akanksha Rai

C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# implementation of above approach 
using System;
  
class GFG
{
  
    // Function to check if the 
    // given number is divisible 
    // by sum of its digits 
    static String isDivisible(long n) 
    
        long temp = n; 
      
        // Find sum of digits 
        int sum = 0; 
        while (n != 0) 
        
            int k = (int) n % 10; 
            sum += k; 
            n /= 10; 
        
      
        // check if sum of digits divides n 
        if (temp % sum == 0) 
            return "YES"
      
        return "NO"
    
      
    // Driver Code 
    public static void Main()
    
        long n = 123; 
        Console.WriteLine(isDivisible(n)); 
    
}
  
// This code is contributed by anuj_67..

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP implementation of above approach
  
// Function to check if the given number 
// is divisible by sum of its digits
function isDivisible($n)
{
    $temp = $n;
  
    // Find sum of digits
    $sum = 0;
    while ($n
    {
        $k = $n % 10;
        $sum += $k;
        $n = (int)($n / 10);
    }
  
    // check if sum of digits divides n
    if ($temp % $sum == 0)
        return "YES";
  
    return "NO";
}
  
// Driver Code
$n = 123;
print(isDivisible($n));
  
// This code is contributed 
// by chandan_jnu
?>

chevron_right


Output:

NO


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.