JavaAlgorithms/Maths/HarshadNumber.java

61 lines
1.6 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Wikipedia for Harshad Number : https://en.wikipedia.org/wiki/Harshad_number
package Maths;
import java.util.Scanner;
public class HarshadNumber
{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter a number : ");
long a = sc.nextLong();
checkHarshadNumber(a);
}
/**
* A function to check if a number is Harshad number or not
*
* @param a The number which should be checked
*/
public static void checkHarshadNumber (long a) {
long b = a;
int sum = 0;
// this is just for showing the explanation else it's of no use you can ommit it
int[] each = new int[Long.toString(a).length()];
int c = 0;
while (b > 0) {
sum += b % 10;
each[c] = (int)(b%10);
b /= 10;
c++;
}
if (a % sum == 0){
System.out.println(a + " is a Harshad Number");
// For you better explanation how is that a Harshad Number
System.out.println("\nExplaination :");
for (int i = each.length-1; i >=0; i--){
System.out.print(each[i] + " ");
if (i != 0) {
System.out.print("+ ");
}
}
System.out.println("= " + sum);
System.out.println(sum + " × " + (a / sum) + " = " + a);
}
else {
System.out.println(a + " is not a Harshad Number");
}
}
}