• Difficulty Level : Easy
• Last Updated : 19 Dec, 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 the sum.

Below is the implementation of the above idea:

## 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"``);` `    ``}` `}`

## Python3

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

## Javascript

 ``

Output :

```Yes
No```

Time complexity: O(log10N) for given input N
Auxiliary space: O(1)

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 an integer and add this to the sum.
• If the number is divisible by the sum then it is Harshad number.

Below is the implementation of the above approach:

## C++

 `// C++ implementation of above approach` `#include` `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 Code` `int` `main()` `{` `    ``int` `number = 18;` `    `  `    ``// Passing this number to get result function` `    ``cout << checkHarshad(number) << endl;` `}`   `// This code is contributed by rrrtnx`

## Java

 `import` `java.io.*;` `// java code to check the given number is Harshad or not` `class` `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`

## Python3

 `# Python implementation of above approach` `def` `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 Code` `number ``=` `18` `# passing this number to get result function` `print``(checkHarshad(number))`   `# This code is contributed by vikkycirus`

## C#

 `// C# program to find the radii` `// of the three tangent circles` `// of equal radius when the radius` `// of the circumscribed circle is given` `using` `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`

## Javascript

 ``

Output

`Yes`

Time  Complexity: O(n)
Auxiliary Space: O(n)

References: