
- Java Tutorial
- Java - Home
- Java - Overview
- Java - Environment Setup
- Java - Basic Syntax
- Java - Object & Classes
- Java - Constructors
- Java - Basic Datatypes
- Java - Variable Types
- Java - Modifier Types
- Java - Basic Operators
- Java - Loop Control
- Java - Decision Making
- Java - Numbers
- Java - Characters
- Java - Strings
- Java - Arrays
- Java - Date & Time
- Java - Regular Expressions
- Java - Methods
- Java - Files and I/O
- Java - Exceptions
- Java - Inner classes
- Java Object Oriented
- Java - Inheritance
- Java - Overriding
- Java - Polymorphism
- Java - Abstraction
- Java - Encapsulation
- Java - Interfaces
- Java - Packages
- Java Advanced
- Java - Data Structures
- Java - Collections
- Java - Generics
- Java - Serialization
- Java - Networking
- Java - Sending Email
- Java - Multithreading
- Java - Applet Basics
- Java - Documentation
- Java Useful Resources
- Java - Questions and Answers
- Java - Quick Guide
- Java - Useful Resources
- Java - Discussion
- Java - Examples
How To Check Whether a Number is a Harshad Number or Not in Java?
Harshad number can be defined as a number which is divisible by the sum of its digits. Simply it means if the sum of the digits of the number is a factor of that number then it is a Harshad number.
In this article we will see how to check Harshad numbers by using the Java programming language.
To show you some instances
Instance-1
Input number is 18
Let’s check it by using the logic of Harshad number −
Sum of the digits of the number = 1 + 8 = 9.
So, 18 is divisible by 9.
Hence, 18 is a Harshad number.
Instance-2
Input number is 3
Let’s check it by using the logic of Harshad number −
Sum of the digits of the number = 3.
So, 3 is divisible by 3.
Hence, 3 is a Harshad number.
Instance-3
Input number is 15
Let’s check it by using the logic of Harshad number −
Sum of the digits of the number = 1 + 5 = 6.
So, 15 is not divisible by 6.
Hence, 14 is not a Harshad number.
Some other examples of Harshad numbers include 1, 2, 4, 5, 6, 7, 8, 9, 10, 12, 18, 20 etc.
Syntax
To convert integer value to String value by using inbuilt toString() method.
Following is the Syntax to get total number of digits in a number by converting the integer value to String value and then finding its length and assigning the length to an integer variable −
String str = Integer.toString(input_number);
To get the length of the Integer, we will use the Java String class inbuilt length() method which returns the length of the String object.
int length = st.length();
To get the character at a specific position/index in a string we use the charAt() method. Where charAt(i)-‘0’ returns the actual integer value.
int num = st.charAt(i)-‘0’;
Where ‘st’ refers to the string ‘i’ is the iterator variable to iterate the string.
Algorithm
Algorithm 1
Step 1 − Get an integer number either by initialization or by user input.
Step 2 − By iterating each digit of the number, find the sum of each digit of the number.
Step 3 − Then check if the original number is divisible by the sum of all digits of the number. If divisible then the given number is a Harshad number else it is not a Harshad number
Algorithm 2
Step 1 − Get an integer number either by initialization or by user input.
Step 2 − Convert that integer to String by using inbuilt toString() method.
Step 3 − Find the length of the String by using the inbuilt length() method.
Step 4 − Then by using a for loop, iterate till the length of the String and get one by one integer value from String by using charAt(i)-‘0’ and keep a track on the sum of all digits.
Step 5 − Then check if the original number is divisible by the sum of all digits of the number. If divisible then the given number is a Harshad number else it is not a Harshad number.
Multiple Approaches
We have provided the solution in different approaches
Without Using String
By Using String
Let’s see the program along with its output one by one.
Approach-1: Without Using String
In this approach, an integer value will be initialized in the program and then by using the Algorithm-1 we can check whether a number is a Harshad number or not.
Example
public class Main{ //main method public static void main(String args[]){ //Declared an integer variable and initialized a number as value int originalNumber = 21; //printing the given number to be checked System.out.println("Given number: "+originalNumber); //keep a copy of original number int copyOfOriginalNumber = originalNumber; //initialize sum as 0 int sum = 0; //Find sum of all digits of the number //continue the loop till the number is greater than 0 while(originalNumber > 0){ //get the rightmost digit of the number by using % operator int rem = originalNumber%10; //add the digit(rem) to sum sum = sum + rem; //remove the rightmost digit from number and get the updated number originalNumber = originalNumber/10; } //printing the result if(copyOfOriginalNumber % sum == 0) System.out.println(copyOfOriginalNumber+" is a Harshadnumber"); else System.out.println(copyOfOriginalNumber+" is not a Harshadnumber"); } }
Output
Given number: 21 21 is a Harshad number
Approach-2: By Using String
In this approach, an integer value will be initialized in the program and then by using the Algorithm-2 we will check if the number is a Harshad number or not.
Example
public class Main{ //main method public static void main(String args[]){ //Declared an integer variable and initialized a number as value int originalNumber = 40; //printing the given number to be checked System.out.println("Given number: "+originalNumber); //keep a copy of original number int copyOfOriginalNumber = originalNumber; //initialize sum as 0 int sum = 0; //convert the integer to string by using toString() method String str = Integer.toString(originalNumber); //find length of String by using length() method //which is nothing but total number of digits in the given number int length=str.length(); //iterate the String and get the digits by using charAt(i)-'0' //find the sum of digits for(int i = 0; i < length; i++){ sum += str.charAt(i)-'0'; } //printing the result if(copyOfOriginalNumber % sum == 0) System.out.println(copyOfOriginalNumber+" is a Harshad number"); else System.out.println(copyOfOriginalNumber+" is not a Harshad number"); } }
Output
Given number: 40 40 is a Harshad number
In this article, we explored how to check a number whether it is a Harshad number or not in Java by using different approaches.
- Related Articles
- How to Check Whether a Number is Krishnamurthy Number or Not in Java?
- How To Check Whether a Number is Strontio Number or Not in Java?
- How To Check Whether a Number is Tcefrep Number or Not in Java?
- How To Check Whether a Number is Tech Number or Not in Java?
- How To Check Whether a Number Is a Pronic Number or Not in Java?
- How To Check Whether a Number Is a Bouncy Number or Not in Java?
- How To Check Whether a Number is a Evil Number or Not in Java?
- How To Check Whether a Number Is a Fascinating Number or Not in Java?
- How To Check Whether a Number Is a Insolite Number or Not in Java?
- How To Check Whether a Number is a Keith Number or Not in Java?
- How To Check Whether a Number Is a Niven Number or Not in Java?
- How To Check Whether a Number is a Sunny Number or Not in Java?
- How to Check Whether a Number is a Triangular Number or Not in Java?
- How To Check Whether a Number is a Unique Number or Not in Java?
- How To Check Whether a Number is a Goldbach Number or Not in Java?
