Harshad (Or Niven) Number

17 Jun, 2022
An integer number in base 10 which is divisible by the sum of its digits is said to be a Harshad Number. An n-harshad number is an integer number divisible by the sum of its digit in base n.Below are the first few Harshad Numbers represented in base 10:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 18, 20.........Given a number in base 10, our task is to check if it is a Harshad Number or not.
Examples : 
Input: 3
Output: 3 is a Harshad Number

Input: 18
Output: 18 is a Harshad Number

Input: 15
Output: 15 is not a Harshad Number
1. Extract all the digits from the number using the % operator and calculate the sum. 2. Check if the number is divisible by sum.
Below is the implementation of the above idea:
C++
Java
Python3
C#
PHP
Javascript
// C++ program to check if a number is Harshad// Number or not.#include <bits/stdc++.h>using namespace std;   // function to check Harshad Numberbool checkHarshad(int n){    // calculate sum of digits    int sum = 0;    for (int temp = n; temp > 0; temp /= 10)        sum += temp % 10;       // Return true if sum of digits is multiple    // of n    return (n % sum == 0);}   // driver program to check above functionint main(){    checkHarshad(12) ? cout << "Yes\n" : cout << "No\n";    checkHarshad(15) ? cout << "Yes\n" : cout << "No\n";       return 0;}
// Java program to check if a number is Harshad// Number or not public class GFG {    // method to check Harshad Number    static boolean checkHarshad(int n)    {        // calculate sum of digits        int sum = 0;        for (int temp = n; temp > 0; temp /= 10)            sum += temp % 10;         // Return true if sum of digits is multiple        // of n        return (n % sum == 0);    }     // Driver program to test above functions    public static void main(String[] args)    {        System.out.println(checkHarshad(12) ? "Yes" : "No");        System.out.println(checkHarshad(15) ? "Yes" : "No");    }}
# Python program to check# if a number is Harshad# Number or not. def checkHarshad( n ) :    sum = 0    temp = n    while temp > 0 :        sum = sum + temp % 10        temp = temp // 10    # Return true if sum of    # digits is multiple of n    return n % sum == 0 # Driver Codeif(checkHarshad(12)) : print("Yes")else : print ("No") if (checkHarshad(15)) : print("Yes")else : print ("No")     # This code is contributed# by Nikita Tiwari
// C# program to check if a number is Harshad// Number or notusing System; public class GFG {     // method to check Harshad Number    static bool checkHarshad(int n)    {         // calculate sum of digits        int sum = 0;        for (int temp = n; temp > 0; temp /= 10)            sum += temp % 10;         // Return true if sum of digits is        // multiple of n        return (n % sum == 0);    }     // Driver program to test above functions    public static void Main()    {        Console.WriteLine(checkHarshad(12) ? "Yes" : "No");         Console.WriteLine(checkHarshad(15) ? "Yes" : "No");    }} // This code is contributed by vt_m.
<?php// php program to check if// a number is Harshad// Number or not. // function to check// Harshad Numberfunction checkHarshad($n){    // calculate sum of digits    $sum = 0;    for ($temp = $n; $temp > 0;                     $temp /= 10)        $sum += $temp % 10;     // Return true if sum of    // digits is multiple of n    return ($n % $sum == 0);} // Driver Code$k = checkHarshad(12) ? "Yes\n" : "No\n";     echo($k);$k = checkHarshad(15) ? "Yes\n" : "No\n";     echo($k); // This code is contributed by ajit.?>
<script>    // Javascript program to check if a number is Harshad Number or not         // method to check Harshad Number    function checkHarshad(n)    {          // calculate sum of digits        let sum = 0;        for (let temp = n; temp > 0; temp = parseInt(temp / 10, 10))            sum += temp % 10;          // Return true if sum of digits is        // multiple of n        return (n % sum == 0);    }         document.write(checkHarshad(12) ? "Yes" + "</br>" : "No" + "</br>");        document.write(checkHarshad(15) ? "Yes" + "</br>" : "No" + "</br>");         </script>
Output : 
Yes
No
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 number is divisible by sum then it is Harshad number.
Below is the implementation of the above approach:
C++
Java
Python3
C#
Javascript
// C++ implementation of above approach#include<bits/stdc++.h>using namespace std; string checkHarshad(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(char i : st)    {                 // Converting character to int        sum = sum + (i - '0');    }         // Comparing number and sum    if (n % sum == 0)    {        return "Yes";    }    else    {        return "No";    }} // Driver Codeint main(){    int number = 18;         // Passing this number to get result function    cout << checkHarshad(number) << endl;} // This code is contributed by rrrtnx
import java.io.*;// java code to check the given number is Harshad or notclass GFG{  // function to check that given number  // is Harshad or not.    static String checkHarshad(int n)    {             // converting the integer to string        String st = Integer.toString(n);        int sum = 0;             // calculating total number of digits      // in a number        int length=st.length();             // adding the all digits of a number        for(int i = 0; i < length; i++){            sum += st.charAt(i)-'0';        }             // checking that sum is divisior of n or not        if(n % sum == 0){           return "YES";        }        else{            return "NO";        }    }     // driver code    public static void main(String args[]){        int number = 18;             // function call        System.out.println(checkHarshad(number));    }} // This code is contributed by Machhaliya Muhammad
# Python implementation of above approachdef checkHarshad(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)             # Comparing number and sum    if (n % sum == 0):        return "Yes"    else:        return "No"  # Driver Codenumber = 18# passing this number to get result functionprint(checkHarshad(number)) # This code is contributed by vikkycirus
// C# program to find the radii// of the three tangent circles// of equal radius when the radius// of the circumscribed circle is givenusing System; class GFG {    static String checkHarshad(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        foreach(char i in st)        {            // Converting character to int            sum = sum + (i - '0');        }         // Comparing number and sum        if (n % sum == 0) {            return "Yes";        }        else {            return "No";        }    }     // Driver code    public static void Main()    {        int number = 18;         // Passing this number to get result function        Console.WriteLine(checkHarshad(number));    }} // This code is contributed by Nidhi goel
<script>// Javascript implementation of above approachfunction checkHarshad(n){     // Converting integer to string    let st = String(n)         // Initialising sum to 0    let sum = 0    let length = st.length     // Traversing through the string    for(i in st){        // Converting character to int        sum = sum + parseInt(i)    }             // Comparing number and sum    if (n % sum == 0){        return "Yes"    }    else{        return "No"    }} // Driver Codelet number = 18// passing this number to get result functiondocument.write(checkHarshad(number)) // This code is contributed by _saurabh_jaiswal</script>
Yes
Time  Complexity: O(n)
References: https://en.wikipedia.org/wiki/Harshad_numberThis article is contributed by Harsh Agarwal. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
 
jit_t
nandanamar
vikkycirus
divyesh072019
_saurabh_jaiswal
rrrtnx
amartyaghoshgfg
shaheeneallamaiqbal
classroompxico
number-digits
series
Mathematical
Mathematical
series
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Operators in C / C++
Find minimum number of coins that make a given value
The Knight's tour problem | Backtracking-1
Algorithm to solve Rubik's Cube
Modulo 10^9+7 (1000000007)
Program for factorial of a number
Program to find sum of elements in a given array
Program to print prime numbers from 1 to N.
Merge two sorted arrays with O(1) extra space
Print all possible combinations of r elements in a given array of size n