An integer number in base 10 which is divisible by sum of it digits is said to be a Harshad Number. An n-harshad number is an integer number divisible by sum of its digit in base n.

Below are 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
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

1. Extract all the digits from the number using % operator and calculate the sum.
2. Check if the number is divisible by sum.

Below is implementation of above idea:

## C/C++

 `// C++ program to check if a number is Harshad ` `// Number or not. ` `#include ` `using` `namespace` `std; ` ` `  `// function to check Harshad Number ` `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 check above function ` `int` `main() ` `{ ` `    ``checkHarshad(12) ? cout << ``"Yes\n"` `: cout << ``"No\n"``; ` `    ``checkHarshad(15) ? cout << ``"Yes\n"` `: cout << ``"No\n"``; ` ` `  `    ``return` `0; ` `} `

## Java

 `// 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

 `# 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 Code ` `if``(checkHarshad(``12``)) : ``print``(``"Yes"``) ` `else` `: ``print` `(``"No"``) ` ` `  `if` `(checkHarshad(``15``)) : ``print``(``"Yes"``) ` `else` `: ``print` `(``"No"``) ` `     `  `# This code is contributed ` `# by Nikita Tiwari `

## C#

 `// C# program to check if a number is Harshad ` `// Number or not ` `using` `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

 ` 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. ` `?> `

Output :

```Yes
No
```

References:

This article is contributed by Harsh Agarwal. 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.

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up

Improved By : jit_t, nandanamar

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.