Hey folks, today you will learn **how to check whether a number is a Harshad number or not in the C programming language**.

Let’s first know about Harshad number.

If a number is divisible by the sum of its digits, then that number is a Harshad Number. For example, 144 is a Harshad number because 1 + 4 + 4 = 9, and 144 is divisible by 9. Some other examples of Harshad numbers are 18, 27, 54, 156, 1729, and so on.

A Harshad number is also called a ‘Niven Number’.

The below program prompts the user to enter a number, then it displays the message whether the entered number is a Harshad number or not.

**C Program to Check Whether a Number is a Harshad Number or Not**

**C Program**

// C Program to Check Whether a Number is Harshad Number or Not #include <stdio.h> int main() { int num, n, rem = 0, sum = 0; // Asking for input printf("Enter a number to check: "); scanf("%d", &num); n = num; // Calculating the sum while (num > 0) { rem = num % 10; sum = sum + rem; num = num / 10; } // Check whether number is equal to the sum if (n % sum == 0) { printf("%d is a harshad number.", n); } else { printf("%d is not a harshad number.", n); } return 0; }

**Output 1**

```
Enter a number to check: 45
45 is a harshad number.
```

**Output 2**

```
Enter a number to check: 33
33 is not a harshad number.
```

**How Does This Program Work?**

int num, n, rem = 0, sum = 0;

In this program, we have declared four int data type variables named `num`

, `n`

, `rem`

, and `sum`

.

printf("Enter a number to check: "); scanf("%d", &num);

Then, the program prompts the user to enter a number. The `scanf()`

function is used to read the number entered by the user and store it in the `num`

variable.

n = num;

We store the value of the original number in the `n`

variable to use it later in the comparison.

while (num > 0) { rem = num % 10; sum = sum + rem; num = num / 10; }

Then, we use a loop to calculate the sum of digits of the entered number. Suppose the user entered the number 45, then:

Iteration | rem = num % 10 | sum = sum + rem | num = num /10 |

45 > 0 | 45 % 10 = 5 | sum = 0 + 5 = 5 | num = 45 / 10 |

4 > 0 | 4 % 10 = 4 | sum = 5 + 4 = 9 | num = 4 / 10 |

The sum will be 9.

Now, we check whether the original number is divisible by the sum of digits or not.

if (n % sum == 0) { printf("%d is a harshad number.", n); } else { printf("%d is not a harshad number.", n); }

- If the original number is completely divisible by the sum of digits of the original number, then that number is a Harshad number.
- If the original number is not completely divisible by the sum of digits, then the entered number is not a Harshad number.

**Conclusion**

I hope after going through this tutorial, you understand how to check whether a number is a Harshad number or not using the C programming language.

You can use the same logic to check for Harshad number in other programming languages.