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.

My Personal Notes arrow_drop_up

Improved By : jit_t

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.