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 NumberInput: 18
Output: 18 is a Harshad NumberInput: 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++ program to check if a number is Harshad // Number or not. #include <bits/stdc++.h> 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 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" );
}
} |
# 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# 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 // php program to check if // a number is Harshad // Number or not. // function to check // Harshad Number function checkHarshad( $n )
{ // calculate sum of digits
$sum = 0;
for ( $temp = $n ; $temp > 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. ?> |
<script> // Javascript program to check if a number is Harshad Number or not
// method to check Harshad Number
function checkHarshad(n)
{
// calculate sum of digits
let sum = 0;
for (let temp = n; temp > 0; temp = parseInt(temp / 10, 10))
sum += temp % 10;
// Return true if sum of digits is
// multiple of n
return (n % sum == 0);
}
document.write(checkHarshad(12) ? "Yes" + "</br>" : "No" + "</br>" );
document.write(checkHarshad(15) ? "Yes" + "</br>" : "No" + "</br>" );
</script> |
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++ implementation of above approach #include<bits/stdc++.h> 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 |
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 |
# 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# 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 |
<script> // Javascript implementation of above approach function checkHarshad(n){
// Converting integer to string
let st = String(n)
// Initialising sum to 0
let sum = 0
let length = st.length
// Traversing through the string
for (i in st){
// Converting character to int
sum = sum + parseInt(i)
}
// Comparing number and sum
if (n % sum == 0){
return "Yes"
}
else {
return "No"
}
} // Driver Code let number = 18 // passing this number to get result function document.write(checkHarshad(number)) // This code is contributed by _saurabh_jaiswal </script> |
Yes
Time Complexity: O(n)
Auxiliary Space: O(n)
References:
https://en.wikipedia.org/wiki/Harshad_number