Open In App

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: