**Harshad Number:**

A Harshad number is one whose original number is divisible by the sum of its digits.

like 5 , 18 , 156 etc.

**Example 1:**

**Input:**

number=18

**Output:**

18 is harshad number

**Explanation:**

Here sum_of_digits=9 i.e (1+8 ) and 18 is divisible by 9

**Example 2:**

**Input:**

number=19

**Output:**

19 is not harshad number

**Explanation:**

Here sum_of_digits=10 i.e (1+ 9 ) and 19 is not divisible by 10

### Harshad Number in Python

Below are the ways to check harshad number in python

- Using while loop
- By converting the number to string and Traversing the string to extract the digits
- Using list and map

Explore more instances related to python concepts from Python Programming Examples Guide and get promoted from beginner to professional programmer level in Python Programming Language.

### Method #1: Using while loop

**Algorithm:**

- Scan the input number
- Make a copy of the number so you can verify the outcome later.
- Make a result variable ( set to 0 ).
- Create a while loop to go digit by digit through the number.
- Every iteration, increase the result by a digit.
- Divide the result by the number’s duplicate.
- If a number divides perfectly, it is a Harshad Number; otherwise, it is not.

**Below is the implementation:**

# given number num = 18 # intiialize sum of digits to 0 sum_of_digits = 0 # copy the number in another variable(duplicate) dup_number = num # Traverse the digits of number using for loop while dup_number > 0: sum_of_digits = sum_of_digits + dup_number % 10 dup_number = dup_number // 10 # It is harshad number if sum of digits is equal to given number if(num % sum_of_digits == 0): print(num, "is harshad number") else: print(num, "is not harshad number")

**Output:**

18 is harshad number

### Method #2: By converting the number to string and Traversing the string to extract the digits

**Algorithm:**

- Using a new variable, we must convert the given number to a string.
- Iterate through the string, convert each character to an integer, and add the result to the sum.
- If a number divides perfectly, it is a Harshad Number; otherwise, it is not.

**Below is the implementation:**

# given number num = 18 # Converting the given number to string numString = str(num) # intiialize sum of digits to 0 sum_of_digits = 0 # Traverse through the string for char in numString: # Converting the character of string to integer and adding to sum_of_digits sum_of_digits = sum_of_digits + int(char) # It is harshad number if sum of digits is equal to given number if(num % sum_of_digits == 0): print(num, "is harshad number") else: print(num, "is not harshad number")

**Output:**

18 is harshad number

### Method #3: Using list and map

**Algorithm:**

- Convert the digits of given number to list using map function.
- Calculate the sum of digits using sum() function.
- If a number divides perfectly, it is a Harshad Number; otherwise, it is not.

**Below is the implementation:**

# given number num = 18 # Converting the given number to string numString = str(num) # Convert the digits of given number to list using map function numlist = list(map(int, numString)) # calculate sum of list sum_of_digits = sum(numlist) # It is harshad number if sum of digits is equal to given number if(num % sum_of_digits == 0): print(num, "is harshad number") else: print(num, "is not harshad number")

**Output:**

18 is harshad number

**Related Programs**:

- python get number of elements in a list list of lists or nested list
- python count number of true elements in numpy array in python
- disarium number in python
- write a program to reverse a number in python
- python program to count the number of digits present in a number
- python program to find the missing number in an array list
- python program to count set bits in a number